ASP.NET Forms Authentication

Pagina: 1
Acties:

  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Ik ben bezig met een CMS. Dit CMS staat in een sub map "cms" van mijn webapplicatie. Nu heb ik in deze map een login.aspx en een default.aspx. In mijn web.config de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<authentication mode="Forms">
            <forms name="AuthCookie" 
                path="cms/" 
                loginUrl="/cms/login.aspx" 
                protection="All" 
                timeout="30">
                <credentials passwordFormat="Clear">
                    <user name="jeff" password="test" />
                    <user name="mike" password="test" />
                </credentials>
            </forms>
        </authentication>

en:

        <authorization>
            <deny users="?" />
        </authorization>


Als ik nu dus in dit cms wil inloggen, ga ik naar de subdir "cms", en hij redirect mij keurig naar login.aspx. Maar nu blijkt tot mijn verbazing dat al mijn aspx pagina's beveiligd zijn en redirecten naar cms/login.aspx, ook de pagina's in de root, die helemaal niet beveiligd hoeven worden...

Hoe kan ik er nou voor zorgen dat de pagina's in de root voor iedereen toegankelijk zijn, en in de map "cms" alleen voor de gebruikers gedefinieerd in de web.config??

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

[rml][ .NET] authorization probs[/rml]

Hier wordt het probleem ook beschreven en behandeld, incluus antwoorden, oplossingen, etc.

[ Voor 43% gewijzigd door gorgi_19 op 08-02-2003 18:27 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

<authorization>
<deny users="?" />
</authorization>

Volgens mij zit hier de fout

"/" aanpassen zou moeten helpen

[ Voor 29% gewijzigd door Verwijderd op 08-02-2003 18:26 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 08 February 2003 @ 18:26:
<authorization>
<deny users="?" />
</authorization>

Volgens mij zit hier de fout

"/" aanpassen zou moeten helpen
Deze code is correct... Je moet alleen aangeven welke folder er wel en welke er niet 'beschermd' moet worden.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Ok ik heb nu dus in de subdirectory "cms" een aparte web.config en de authentication en authorization uit de root hierin gezet:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<authentication mode="Forms">
            <forms name="AuthCookie" 
                path="/" 
                loginUrl="login.aspx" 
                protection="All"
                timeout="30">
                <credentials passwordFormat="Clear">
                    <user name="jeff" password="test" />
                    <user name="mike" password="test" />
                </credentials>
            </forms>
        </authentication>
        <authorization>
            <deny users="?" />
        </authorization>


Maar nu krijg ik deze foutmelding:

Configuration Error

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.

Iemand een idee wat dit inhoud?

[ Voor 16% gewijzigd door UniCache2 op 08-02-2003 19:48 . Reden: Layout verbeterd ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

Ja. Je zet een forms-authentication in een web.config in een virtual folder, wat niet mag.

Heb je het topic gelezen wat ik had neergezet?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Ja ik heb het gelezen. Je doelt waarschijnlijk op het feit dat ik het allemaal in 1 web.config kan zetten, gewoon in de root, met <location>, maar dan krijg ik dezelfde error...
Ik wist niet dat ik forms-authentication niet in een web.config in een virtual folder mag zetten, maar hoe los ik dit dan op?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

UniCache2 schreef op 08 februari 2003 @ 19:56:
Ja ik heb het gelezen. Je doelt waarschijnlijk op het feit dat ik het allemaal in 1 web.config kan zetten, gewoon in de root, met <location>, maar dan krijg ik dezelfde error...
Ik wist niet dat ik forms-authentication niet in een web.config in een virtual folder mag zetten, maar hoe los ik dit dan op?
Met de location tags... :)
Of de virtual folder ook als application definieren in IIS

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Ok, bedankt voor je snelle reacties!

Ik heb dit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<location path="cms">
      <system.web>
      <authentication mode="Forms">
            <forms name="AuthCookie" 
                path="cms" 
                loginUrl="cms/login.aspx" 
                protection="All" 
                timeout="30">
                <credentials passwordFormat="Clear">
                    <user name="jeff" password="test" />
                    <user name="mike" password="test" />
                </credentials>
            </forms>
        </authentication>
        <authorization>
            <deny users="?" />
        </authorization>
    </system.web>
    </location>


Nu weer terug gezet in de root web.config.

Nu krijg ik nog steeds de zelfde foutmelding...

[ Voor 25% gewijzigd door UniCache2 op 08-02-2003 20:06 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10:24

gorgi_19

Kruimeltjes zijn weer op :9

Kijk eens op Google naar een aantal werkende voorbeelden..
http://www.google.nl/sear...=UTF-8&oe=UTF-8&hl=nl&lr=

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Blijkbaar mag je <authentication> dus alleen in de root van de web.config en niet binnen een location tag of een web.config in een subdirectory.

probleem opgelost, bedankt!

  • UniCache2
  • Registratie: Januari 2001
  • Laatst online: 02-03 09:30
Even voor de vollediogheid, dit is nu dus mijn web.config:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        <compilation defaultLanguage="vb" debug="true" />
        <customErrors mode="Off" />
        <authentication mode="Forms">
                <forms name="AuthCookie" 
                    path="cms" 
                    loginUrl="cms/login.aspx" 
                    protection="All" 
                    timeout="30">
                    <credentials passwordFormat="Clear">
                        <user name="jeff" password="test" />
                        <user name="mike" password="test" />
                    </credentials>
                </forms>
            </authentication>
        <authorization>
          <allow users="*" />
        </authorization>
        <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
        <sessionState mode="InProc" cookieless="false" timeout="20" />
        <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
    </system.web>
    <location path="cms">
      <system.web>
            <authorization>
              <deny users="?" />
            </authorization>
      </system.web>
    </location>
</configuration>

[ Voor 25% gewijzigd door UniCache2 op 08-02-2003 20:18 ]


  • maikel
  • Registratie: Januari 2001
  • Laatst online: 24-08 12:52
Staat jou login.aspx ook niet in de verkeerde map?
De user mag niet in de map 'cms' en wordt dus geredirect naar de login-pagina. Maar die staat bij jou ook in 'cms'. Maar daar mag de user niet in!
Die login-pagina moet dus in een niet-beveiligde map staan.
Pagina: 1