Jag har en mapp i mitt webbprojekt som heter "Admin" där alla sidor ligger som inte "vanliga" användare ska få använda. I nuläget kan man komma åt alla sidor i admin-mappen trots att jag efter bästa förmåga försökt konfigurera säkerheten med web.config. Så här ser den ut: Vad händer om du byter ut authorization-blocket till: Antog att du menade det översta blocket som ligger i roten så att säga. kasta om de här två: location path="Admin/"> hmm..samma resultat....alla adminsidor är fortfarande tillgängliga.... =( (apropå Patriks svar) Johan: Tobias, Att sätta "/" före admin fungerade inte. Då kraschade hela webbplatsen pga "syntaxfel" i webconfig typ... Tänk på att denna informationen ärvs, finns en web.config i katalogen ovanför tar den om inget anges i den du pillar i. Om inte det står något där så ärvs det från machine.config. Ok, men om jag bara vill ha en webconfig, hur bör jag skriva då? Hej, Hej! Tack Ronny! Nu fungerar det på min burk här hemma!Får ej forms authentication att fungera
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authentication mode="Forms" >
<forms name=".vsifSecurity" loginUrl="login.aspx" protection="All" timeout="25" path="/" />
</authentication>
<authorization>
<allow users="*" /> <!-- Allow all users -->
</authorization>
<location path="Admin/">
<system.web>
<authorization>
<deny users="*"/>
<allow users="admin"/>
</authorization>
</system.web>
</location>
</configuration>
några tips?Sv: Får ej forms authentication att fungera
<authorization>
<deny users="?" />
</authorization>
istället?Sv:Får ej forms authentication att fungera
Om jag ändrar till <deny users"?" >/ så kommer jag inte åt några sidor ö.h.t utan redirectas till min login-sida....Sv: Får ej forms authentication att fungera
<deny users="*"/>
<allow users="admin"/>
till:
<allow users="admin"/>
<deny users="*"/> Sv:Får ej forms authentication att fungera
Skall du verkligen ha / här?
Du kan ju annars ta bort detta stycke och i din Admin mapp lägga en ny web.confgi med Authorization som säger vilka det är som har rättighet här i... Kan ibland göra det lite mer flexibelt.
Har haft lite problem med location o mappnanmn, gått bättre med filnamn...
Mvh JohanSv:Får ej forms authentication att fungera
Sv: Får ej forms authentication att fungera
Jag testade det men får då nåt fel som säger att det är nåt problem som kan bero på någon katalog som inte är konfigurerad som virtuell katalog....Sv:Får ej forms authentication att fungera
När du testade att ta bort / eller lägga en egen fil i admin mappen?
om du har /admin istället för admin/ då?
mvh JohanSv: Får ej forms authentication att fungera
Den första frågan du skrev förstod jag inte riktigt... =/Sv:Får ej forms authentication att fungera
Sv: Får ej forms authentication att fungera
Den ligger som sagt i roten för applikationen och mappen "Admin" innehåller de sidor som endast administratörer ska ha åtkomst till. Jag tycker att det borde ha fungerat men något blir fel...Sv: Får ej forms authentication att fungera
Försök att ha en egen web.config fil i din admin-katalog. Det enda som skall finnas i den filen är :
<configuration>
<system.web>
<authorization>
<allow roles="Administrator" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
Du kan självklart byta ut allow roles till allow user om det endast gäller en användare. Om du gör detta skall du ta bort authorization-informationen från web.config i huvudkatalogen.
mvh
HerbjörnSv:Får ej forms authentication att fungera
Använder samma metod för att "låsa ute" icke auktoriserade användare i mina system här... Jag kör också med endast en Web.Config-fil. Vart ligger din inloggnings-fil? Ligger den också i mappen som du vill säkra upp (Admin)? Har du testat att skriva så här i web.config i ditt rot-bibliotek:
<code>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<!-- ... -->
<authentication mode="Forms" >
<forms name=".vsifSecurity" loginUrl="Admin/login.aspx" protection="All" timeout="25" path="/" />
</authentication>
<authorization>
<allow users="*" /> <!-- Allow all users -->
</authorization>
<!-- ... -->
</system.web>
<location path="Admin">
<system.web>
<authorization>
<deny users="?"/> <!-- Tillåt ej anonyma användare -->
</authorization>
</system.web>
</location>
</configuration>
</code>
Sedan är det bara att validera namn/lösen i login.aspx och sedan t ex anropa:
FormsAuthenticate.RedirectFromLoginPage(sUID, False)
Problemet med koden i ditt första inlägg, vad jag kunde se, är att du i authorization-taggen först stoppade alla användare med <deny users="*"/> och sedan tillät <allow users="admin"/> men den sista kontrollen utförs inte eftersom alla redan har "förbjudits" med '*'. Ordningen på dessa rader är viktiga, som en påpekade i ett tidigare inlägg här ovan. Använd istället <deny users="?"/> för att stoppa anonyma användare och kontrollera deras namn/lösen. Är inte 100% säker men har för mig att när du skriver <allow users="admin"/> så måste användarkontot "admin" finnas med på webservern (eller i domänkontrollanten), eller så kan du sätta upp ett antal användarkonton direkt i web.config, men för det mesta vill man ju kontrollera namn/lösen mot en databas och därefter eventuellt släppa in dem i den skyddade delen av sin webbsajt... :-)
Lycka till!
// Ronny
Sv: Får ej forms authentication att fungera
Men när jag lägger upp hela applikationen på mitt webbhotell så får jag detta fel:
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.
Source Error:
Line 4: <system.web>
Line 5:
Line 6: <authentication mode="Forms" >
Line 7: <forms name=".vsifSecurity" loginUrl="Admin/login.aspx" protection="All" timeout="25" path="/" />
Line 8: </authentication>
Min applikation ligger inte i roten på mitt webbhotell och jag har dessutom en webconfig i roten. Är det därför det strular? Hur åtgärdar jag detta?