[ASP.NET] Login geblokkeerd door web.config*

Pagina: 1
Acties:

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
Hallo tweakers,

voor een schoolproject zijn we bezig een stagedatabase te ontwikkelen.
Ik ben verantwoordelijk voor het 'beveiligen' van de site.
De site heeft de volgende structuur:

'root'/login.aspx
'root'/student/main.aspx

in de 'root' map staat een web.config:
XML:
1
2
3
4
5
6
7
8
9
10
11
<configuration>
   <system.web>
      <authentication mode="Forms">
         <forms name="STAGE" loginUrl="login.aspx" protection="All" path="/" />
      </authentication>

      <authorization>
         <allow users="*" />
      </authorization>
   </system.web>
</configuration>


in de map student staat een web.config die er als volgt uit ziet:
XML:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" ?>
<configuration>
   <system.web>
      <authorization>
         <allow roles="student" />
         <deny users="*" />
      </authorization>
   </system.web>
</configuration>


als ik nu inlog op de login.aspx, dan wordt ik correct geredirect naar een pagina in de folder /student,
maar deze blokeert de redirect en redirect mij weer naar de inlogpagina.
ik weet hierbij zeker dat mijn role op 'student' staat

als ik nu in de web.config de <deny users="*" /> verwijder en het opnieuw probeer, wordt ik niet geblokkeerd. Dit vind ik nogal vreemd, want de volgorde (allow -> deny) is goed, maar toch kom ik er niet door...

Weet iemand waarom dit niet werkt of hoe ik kan omzeilen dat alleen studenten in kunnen loggen?

  • R4NCOR
  • Registratie: December 2000
  • Laatst online: 05-02 19:44

R4NCOR

eigenlijk gewoon Niels

"Disclaimer": Ik heb niet echt kaas gegeten van deze manier van beveiliging ;)

Maar weet je zeker dat de volgorde op deze manier goed is? Mijn gevoel zou zeggen dat je nu eerst een bepaalde role allowed, maar dat 'ie daarna weer denied wordt door de regel daaronder. Zou je die niet moeten omdraaien?

  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10-2025
wilde gok, zou het mogelijk zijn om deny roles te doen, ipv deny users? ben niet bekend met asp, maar dit lijkt me een mogelijkheid :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 20:37
Dit gaat over ASP.NET blijkbaar, en niet over ASP ?
Dit zijn 2 verschillende platformen nl...

Ik zou m'n allow en deny toch even omdraaien; de MSDN is ook niet echt duidelijk.
Op een pagina zeggen ze dit:
At run time, the authorization module iterates through the <allow> and <deny> tags until it finds the first access rule that fits a particular user. It then grants or denies access to a URL resource depending on whether the first access rule found is an <allow> or a <deny> rule. The default authorization rule in the Machine.config file is <allow users="*"/> so, by default, access is allowed unless configured otherwise.
en
The following example allows access to all members of the Admins role and denies access to all users.
code:
1
2
3
4
5
6
7
8
<configuration>
   <system.web>
      <authorization>
         <allow roles="Admins"/>
         <deny users="*"/>
      </authorization>
   </system.web>
</configuration>


Op een andere pagina staat er dan dit:
The following example denies access to all users and allows access to all members of the Admins role.
code:
1
2
3
4
5
6
7
8
<configuration>
   <system.web>
      <authorization>
         <deny users="*"/>
         <allow roles="Admins"/>
      </authorization>
   </system.web>
</configuration>

[ Voor 166% gewijzigd door whoami op 26-01-2007 12:17 ]

https://fgheysels.github.io/


  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
klopt whoami, het is .NET
ik zal voor de zekerheid de deny omdraaien, maar op elke tutorial die ik gezien heb staat dat ze op deze volgorde moeten

Edit: Even geprobeerd om te draaien, maar het maakt niets uit..

Wat ik vergeten was te vertellen, is dat de redirect van de pagina in de '/student' folder terug naar de login.aspx een param meegeeft: ReturnUrl=........

@Nice_haak: bij users kun je een wildcard geven, en bij roles moet je ze specifiek opgeven (tenminste.. mijn IIS begint te zeuren als ik <deny roles="*" /> doe)

[ Voor 61% gewijzigd door martennis op 26-01-2007 12:24 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 20:37
martennis schreef op vrijdag 26 januari 2007 @ 12:17:
klopt whoami, het is .NET
ik zal voor de zekerheid de deny omdraaien, maar op elke tutorial die ik gezien heb staat dat ze op deze volgorde moeten
Ik dacht in eerste instantie ook dat de volgorde goed was, maar toen ik die 2 dingen op MSDN zag, begon ik toch even te twijfelen.

Nog een vraagje: wat staat er nog in je /root directory ? Dus waar je login.aspx staat ?
Ik vind het nl. een beetje raar als daar enkel de login.aspx zou staan.

[ Voor 17% gewijzigd door whoami op 26-01-2007 12:23 ]

https://fgheysels.github.io/


  • Viper®
  • Registratie: Februari 2001
  • Niet online
altijd eerst de allow, en dan pas de deny

Als je deny users="*" en vervolgens allow roles="admins" maakt dat volgens mij niets uit.

Je denied alle gebruiks, daarmee is de kous af.

Je kan wel zoiets doen als:

<authorization>
<deny users="Ikke" />
<allow roles="Admins" />
<deny users="*" />
</authorization>

Op die manier blokkeer je ikke, maar geef je wel toegang aan de admin roles, en de rest is ook geblokkeerd.

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
we zijn nog niet zover, dus er staat niet echt veel in maar dit staat er wel:

Global.asax
index.aspx
login.aspx
MasterPage.master
Web.config
Web.sitemap

  • Viper®
  • Registratie: Februari 2001
  • Niet online
Ik zou location gebruiken in je hoogst liggende web.config.

dus de web.config in je root:

http://technet2.microsoft...45a3f7b1043.mspx?mfr=true

Op die manier geef je als path je student directory aan en de daarbij behorende beveiliging.
Hierbij centreer je ook je overzicht van beveiligingsregels etc.

  • martennis
  • Registratie: Juli 2005
  • Laatst online: 16-01 14:17
kan, maar zo kunnen we makkelijker modulair werken met het projectgroep :)
maar ik zal het wel even proberen.. misschien wil het dan wel..

edit: probleem opgelost...

ik had in global.asax de functie Application_AuthenticateRequest verkeerd genoemd, namelijk Application_AuthenticationRequest.. daarom werden mijn rechten niet goed gezet en dus knalde hij er weer uit :)

toch bedankt iedereen voor zijn/haar ideëen!

wat een kleine pauze al niet kan doen ;)

[ Voor 57% gewijzigd door martennis op 26-01-2007 13:05 ]

Pagina: 1