Avatar billede morten2 Nybegynder
07. juni 2007 - 09:36 Der er 9 kommentarer

URL Authorization i ASP.NET 2.0 virker ikke for html, jpeg og gif

Ifølge Microsoft skulle URL Authorization i ASP.NET 2.0 på Windows 2003 Server beskytte alle filer i applikationsfolderen samt undermapper (modsat ASP.NET 1.1 som kun beskytter nogle filtyper).

Jeg har følgende web.config

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true"/>
    <authentication mode="Forms"/>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</configuration>

Hvis jeg skriver www.minserver.dk/default.aspx bliver jeg korrekt redirected til min login.aspx. Men hvis jeg skriver www.minserver.dk/billeder/billede.jpg så bliver billedet vist uden at jeg er logget ind?

Jeg har checket at IIS køre applikationen under NET 2.0. Jeg har ikke nogen web.config under mappen billeder.

Er der nogen der ved hvad der går galt?

På forhånd tak, Morten
Avatar billede dr_chaos Nybegynder
07. juni 2007 - 12:49 #1
URL Authorization handler ikke om din web.config.
Det handler om at nægte adgang til en mappe til anonyme brugere:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/524404dc-8586-46b0-89ac-0f5db6d33c9c.mspx?mfr=true
Avatar billede morten2 Nybegynder
07. juni 2007 - 17:20 #2
Jeg tror kun den metode du beskriver kan virke med Windows auth.
Hvis man bruger Forms Auth så skal anonyme brugere have adgang til mappen.

Microsoft skriver i http://msdn2.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_authorhowtoperformauthorizationinaspnet
-----
UrlAuthorization. By configuring the <authorization> element in Web.config, administrators can authorize the user held in the HttpContext.User object. You can authorize the user based on the user's name or based on the user's role membership. ASP.NET version 2.0 on Windows Server 2003 protects all files in a directory, even those not mapped to ASP.NET, such as .html, .gif, and .jpg files.
-----

Andet steds har jeg læst at ovenstående metode virker både med forms og windows auth.
Det burde være simpelt med jeg kan simpelthen ikke få det til at virke :-(
Avatar billede dr_chaos Nybegynder
07. juni 2007 - 17:26 #3
Du skal deny anonymous access til mappen via IIS.
Avatar billede morten2 Nybegynder
07. juni 2007 - 21:07 #4
Med "deny anonymous access" mener du så at afklikke checkboksen "Enable anonymous access" under "auth methods" i ISS?
Hvis jeg gør det får jeg en windows prompt når jeg prøver at åbne default.aspx.
I min app bruger jeg forms auth så det er ikke så hensigtsmessigt.
Avatar billede dr_chaos Nybegynder
07. juni 2007 - 21:19 #5
UNdskyld jeg vrøvler lidt.
Du skal gøre det at du fjerne adgangen for den anynome IUSR til dine billede mapper og så skal du streame billederne til din imagecontrol.
Men det forhindre ikke at downloade det streamede billede.
Du kan bare ikke tilgå det direkte.
En anden mulighed er at placerer billederne uden for wwwroot.
Avatar billede morten2 Nybegynder
07. juni 2007 - 21:53 #6
Jeg er med på at man kan komme uden om problemt ved at ligge billederne uden for wwwroot og så selv hente dem via en aspx side. Men nu hvor Microsoft skriver at NET 2.0 kan beskytte alle filer ville det være en lettere og fiksere løsning.

P.t. bruger jeg et andet workaround. Jeg laver en wildcard mapping under Mappings fanebladet til Aspnet_isapi.dll. Dette tvinger alle sider igennem .NET filteret og derved sikre at ingen filer kan vises med mindre man er logget ind.
Det samme kunne man gøre under NET 1.1 så det kan ikke være det microsoft referere til når de siger at .NET 2.0 beskytter alle filer.

Måske glemte microsoft at implementere funktionaliteten og fik det så ikke lige pillet ud af deres dokumentation :-)
Avatar billede dr_chaos Nybegynder
09. juni 2007 - 15:49 #7
Ja det kunne godt se sådan ud.
Jeg har aldrig kunne få det til at virke.
Avatar billede dr_chaos Nybegynder
09. juni 2007 - 15:50 #8
Du kan formodentlig ligge filer i app_data og så er de måske beskyttet.
Har dog ikke prøvet det.
Avatar billede dr_chaos Nybegynder
09. juni 2007 - 15:52 #9
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester