2013-01-14 13 views
7

Ich habe ein Problem mit dem Standarddokument von iis setting. In meiner Website (http: // mysite) habe ich das Standarddokument als Login-Seite zur Verfügung gestellt. Wenn Benutzer die URL eingeben (http: // mysite) leitet sie den Benutzer zur Anmeldeseite um, zeigt jedoch nicht die vollständige URL an (http: //mysite/login.aspx). Sieht so aus, als ob das Standarddokument server.transfer statt response.redirect verwendet. Aus diesem Grund, wenn Benutzer ihre Anmeldeinformationen eingeben und dann auf Anmelden klicken, leitet es sie erneut zur Anmeldung um und von dort an funktioniert es gut. Daher muss der Benutzer seine Anmeldeinformationen zweimal eingeben.Standarddokument zeigt keine vollständige URL an

Meine App ist auf .NET 3.5 entwickelt.

Gibt es eine Möglichkeit, dass ich response.redirect erreichen kann.

Antwort

1

Im selben Ordner wie Standard Ort Textdatei mit dem Namen Web.config (ohne .txt, .xml oder jede andere Erweiterung) mit folgendem genauer Inhalt:

<?xml version="1.0"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Redirect to login" stopProcessing="true"> 
        <match url=".*" /> 
        <conditions> 
         <add input="{URL}" pattern="^/$" /> 
        </conditions> 
        <action type="Redirect" url="/login.aspx" redirectType="Permanent" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

hallo, meinst du, ich sollte eine andere web.config in den Ordner, wo meine Login-Seite sitzt ?. Meine Login-Seite befindet sich in einem anderen Ordner. Es befindet sich nicht direkt im Stammordner. – Punit

+0

ein anderer? In einem Ordner kann ein Dateiname nur einmal verwendet werden. Wenn Sie eine bestehende web.config in diesem Ordner haben, müssen Sie mit diesem XML-Code zusammenführen. –

3

eine index.html als Standarddokument verwenden in deinem Basisverzeichnis. Verwenden Sie in dieser index.html entweder Meta-Refresh oder JavaScript Redirect auf Ihre login.aspx Seite. Siehe folgenden Beispiel-Meta-Refresh-Code.

Ihr Projekt

website 
    index.html 
    secure/login.aspx 

index.html

<!DOCTYPE html> 
<html> 
<head> 
<title>YOUR PROJECT NAME</title> 
    <meta http-equiv="refresh" content="0;URL='http://www.YOURDOMAIN:COM/secure/login.aspx'" />  
</head> 

<body> 
    <p> Click to 
     <a href="http://www.YOURDOMAIN:COM/secure/login.aspx">Login</a> 
    </p> 

</body> 

</html> 
0

schreiben folgenden Zeilen in Page_Init Ihrer Login-Seite.

Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init 
    If Not MyBase.IsPostBack Then 
     If HttpContext.Current.Request.Url.ToString.Contains("Login") = False Then 
      Response.Redirect("~/Login.aspx") 
     End If 
End Sub