2012-04-13 19 views
0

Ich habe Authentifizierungsformulare zu meinem ASP.NET-Projekt hinzugefügt. Die Hauptseite (default.aspx in meinem Fall) sollte nicht durch ein Passwort geschützt werden, so fügte ich diese Zeile in der web.config:ASP.NET-Authentifizierung fragt nach Login für Standardseite

<location path="default.aspx"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 

Das Problem ist, dass, wenn ich die URL eingeben, sagen http://mywebapp.university.edu/, ich habe die Login-Seite. Sicher genug, wenn ich http://mywebapp.university.edu/default.aspx eingeben. Dann bin ich auf die Seite gekommen, ohne irgendwelche Zugangsdaten angeben zu müssen. Was kann ich tun, wenn ich die URL, die ich bekomme, mit der default.aspx-Seite versehen habe, ohne sie explizit in die URL eingeben zu müssen?

Danke!

+0

Haben Sie Zugriff auf IIS? – Khan

+0

Ja, ich habe Zugriff auf IIS. – webyacusa

+0

So kam ich mit diesem schrecklichen Hack auf der Seite Login.aspx up: protected void Page_Load (object sender, EventArgs e) { if (Request.QueryString [ "ReturnUrl"] == "/") { Response.Redirect ("default.aspx"); } } Jetzt funktioniert es. Wenn jemand weiß, wie ich das beheben kann, akzeptiere ich immer noch Antworten, und natürlich wird eine bessere, elegantere Lösung als die ausgewählte Antwort gewählt. Vielen Dank. – webyacusa

Antwort

0

Wann immer direkt Benutzer zu der er default Seite geht wird verified mit user.identity wenn nicht er redirected-Login page sein wird.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (User.Identity.IsAuthenticated) // if the user is already logged in 
    { 
      Response.Redirect("~/Default.aspx"); 
    } 
    else 
    {  
      Response.Redirect("~/Login.aspx"); 
    } 
} 
+0

Und das wäre hilfreich wie? – Khan

+0

@ Jeff-Got die Klarstellung. – coder

+0

Das OP sagt, dass der Benutzer nicht angemeldet sein muss. Der Benutzer wird aufgefordert, Anmeldeinformationen einzugeben, wenn dies nicht der Fall ist. – Khan

0

in IIS zur Website Eigenschaft als gegeben in untenstehenden Link

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/dc6eb1b4-9028-4308-9935-52b64edfad36.mspx?mfr=true 

Nach oben verschieben default.aspx Seite oberhalb der Login-Seite, speichern und zu testen.

+0

default.aspx war bereits an der Spitze der Standarddokumente. Das war das erste, was ich ausprobiert habe. Danke für deinen Vorschlag. – webyacusa

+0

Ich habe eine Website wie diese eingerichtet und es funktioniert gut für mich. hast du nachgesehen, ob auf der Website eine Redirect-URL angegeben ist? http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/6b855a7a-0884-4508-ba95-079f38c77017.mspx?mfr=true –

+0

Hat Ihre web.config oder Code Rewriting-Regeln geschrieben? –

0

So kam ich mit diesem schrecklichen Hack auf der Seite Login.aspx up:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.QueryString["ReturnUrl"] == "/") 
     { 
      Response.Redirect("default.aspx"); 
     } 
    } 

Jetzt funktioniert es. Wenn jemand weiß, wie ich das beheben kann, akzeptiere ich immer noch Antworten, danke!

Verwandte Themen