[c#/asp.net] grote bestanden > 1 GB naar db uploaden

Pagina: 1
Acties:

  • sirono
  • Registratie: November 2002
  • Laatst online: 07-08-2025
ik zit met het volgende probleem:

Ben bezig met een partner portal voor
het bedrijf waar ik werk. Op dit partner portal moeten o.a. saleskits ter download aangeboden worden. dit moet echter wel beveiligd zijn want elke sales kit kan voor verschillende partners anders zijn.

dus zat ik te denken aan een database constructie. maar hoe krijg ik dan die bestanden in de database? ik zat zelf te denken aan een ftp upload naar de server ofzo. en dan een script die dat bestand dan in de database kan plaatsen.

een andere mogelijkheid zou een gewone ftp upload zijn. zonder database, maar het probleem is dan de beveiliging.
zelfs als iemand de link heeft mag hij niet in staat zijn het bestand te downloaden zonder authenticatie.

ik weet het, het is vrij basic security stuff, maar ik heb hier weinig ervaring mee (zeker met zulke grote bestanden).
dus als iemand ideeën heeft over hoe dit op te lossen... dan graag.

  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 09-01 09:09
Het is denk ik beter als je in je db gewoon een link naar het bestand zet ipv het hele bestand in de db te pleuren. De directory waar je de bestanden zet beveilig je in je web.config met een wachtwoord, dus bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
<location path="downloadpacks" allowOverride="false">
    <system.web>
        <authorization>
            <deny users="?" />
            <allow roles="Administrator" />
        </authorization>
    </system.web>
 </location>


Dan maak je een forms authentication aan en zet je de gebruikers in een db. Bijvoorbeeld mbv
http://www.15seconds.com/Issue/020220.htm

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 14:39

gorgi_19

Kruimeltjes zijn weer op :9

UniCache2 schreef op maandag 16 oktober 2006 @ 11:23:
Het is denk ik beter als je in je db gewoon een link naar het bestand zet ipv het hele bestand in de db te pleuren. De directory waar je de bestanden zet beveilig je in je web.config met een wachtwoord, dus bijvoorbeeld:

code:
1
2
3
4
5
6
7
8
<location path="downloadpacks" allowOverride="false">
    <system.web>
        <authorization>
            <deny users="?" />
            <allow roles="Administrator" />
        </authorization>
    </system.web>
 </location>


Dan maak je een forms authentication aan en zet je de gebruikers in een db. Bijvoorbeeld mbv
http://www.15seconds.com/Issue/020220.htm
Wat dan alleen geldt indien de bestandextensie afgehandeld wordt door het asp_net worker process.

Je kan eens kijken naar Response.TransmitFile en vanuit hier verder gaan googlen :) Wellicht kan je dan op wat 3rd party components uit of vind je Response.TransmitFile goed genoeg :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sirono
  • Registratie: November 2002
  • Laatst online: 07-08-2025
het belangrijktste punt is momenteel dus niet het sturen van het bestand naar de client.
daar is genoeg over te vinden op inet (en got).

de belangrijkste vraag is: hoe laat ik mijn baas (die half digibeet is) de bestanden online zetten. zodat het wel veilig is.dus als het met een db moet. hoe upload ik 1 gig naar een db.

  • JJvG
  • Registratie: Juli 2003
  • Laatst online: 02-12-2025
Als je je vraag lees, gaat het meer over autorisatie op de bestanden, dan over het opslaan van de bestanden zelf. Zoals eerder gezegd, raad ook ik je aan om je bestanden buiten je database op te slaan.

Qua autorisatie heb ik voor mijn site de bestanden buiten de site geplaatst. Structuur is als volgt:
/root
     /bestanden
     /database
     /www
          /css etc.

In de bestanden directory heb ik vervolgens alle bestanden opgeslagen, zodat ze niet direct vanaf het internet te downloaden zijn als mijn beveiliging zou haperen, of via het gokken van de URL je de bestanden kan benaderen.

Vervolgens heb ik een bestand gemaakt genaamd downloadbestand.asp (in mijn geval) met als parameter het FileID. Dit FileID gebruik ik in een query die joint met gebruikerinformatie, groepsinformatie en bestandsinformatie. Levert de query een resultaat, dan wordt het bestand gestreamed, levert het geen resultaat dan wordt een foutmelding gegeven (geen rechten op het bestand).

  • sirono
  • Registratie: November 2002
  • Laatst online: 07-08-2025
uitstekend id

dat ik daar zelf niet aan gedacht heb

gewoon het bestand niet download baar maken, geniaal in eenvoud :)
Pagina: 1