WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Lösenordsskydda mapp i ASP.NET-applikation (https://www.wn.se/forum/showthread.php?t=34193)

etanders 2008-12-31 08:41

Skulle vilja uppnå följande situation i en ASP.NET 3.5-applikation:
- Roten och ev. undermappar är ej lösenordsskyddade.
- Endast undermappen "Admin" är lösenordsskyddad.

Har försökt att lägga in följande i web.config-filen i roten:
Kod:

<location path="Admin">
  <system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/Admin/Login.aspx" />
  </authentication>
  <authorization>
    <deny users="?" />
  </authorization>
  </system.web>
 </location>

Det funkar att köra (lokalt från Visual Studio 2008) när jag går till sidor i roten, men om jag försöker gå till Adminmappen kommer ett felmeddelande:

Serverfel i tillämpningsprogrammet /.
Konfigurationsfel
Beskrivning: Ett fel uppstod när en konfigurationsfil som är nödvändig för att utföra begäran behandlades. Granska felinformationen nedan och gör nödvändiga ändringar i konfigurationsfilen.
Parsningsfelmeddelande: Det är fel att använda ett avsnitt som är registrerat som allowDefinition=MachineToApplication utanför tillämpningsnivån. Felet kan uppstå av att en virtuell katalog inte är konfigurerad som ett tillämpningsprogram i IIS.


Under utvecklingen kör jag applikationen lokalt i Visual Studio 2008, så jag har inte IIS installerat. Hela applikationen ska sedan upp på ett webbhotell. Finns det någon enkel detalj jag har missat för att få det att funka?

Eller ska jag tänka om och göra admin-delen som en separat webbapplikation? Jag har ändå all businesslogik i ett separat projekt.

ChristofferP 2008-12-31 10:30

Kika på http://www.theserverside.net/tt/arti...Authentication, där tar dom upp felet du får samt hur man löser det.

En sak som säkert inte orsakar felet men som slår mig direkt är att om du sätter "deny" på /Admin så kan inte inloggningssidan ligga på /Admin/Login.aspx, man har ju inte rättigheter att gå dit :)

Conny Westh 2008-12-31 10:41

Här beskrivs en lösning på ditt problem:

http://www.eggheadcafe.com/forumarchives/n...ost24881509.asp

Eller kika på den kompletta Knowledgebase artikel hos Microsoft som beskriver det hela:

http://support.microsoft.com/default.aspx?...kb;en-us;316871


Kod:

<system.web> *
 * *<authorization> *
 * * * *<allow users="*" /> *
 * *</authorization> *
</system.web> *
<location path="/yoursubfolder"> *
 * *<system.web> *
 * * * *<authentication mode="Forms" > *
 * * * * * *<forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/subdir"
 * * * * * * * timeout="20" > *
 * * * * * *</forms> *
 * * * *</authentication> *
 * * * *<authorization> *
 * * * * * *<allow users="?" /> *
 * * * *</authorization> *
 * *</system.web> *
</location>


etanders 2008-12-31 19:01

Tack för länktipsen! Jag ska kolla på dem, men det får nog bli nästa år ;)

Gott nytt år!

etanders 2009-01-01 21:43

ConnyWesth, det exempel du gav var inte riktigt vad jag önskade, men det gav mig ändå den hjälp jag behövde. Tack för det.

I mitt fall vill jag ha roten öppen för alla, och endast mappen "Admin" lösenordsskyddad. Om någon annan skulle ha samma problem så verkar följande innehåll i web.config (i roten) fungera.

Kod:

<configuration>
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="Login.aspx" />
    </authentication>
    <authorization>
      <allow users="?" />
    </authorization>
  </system.web>
  <location path="Admin">
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>



Alla tider är GMT +2. Klockan är nu 17:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson