默认文档不显示完整的URL

时间:2013-01-14 10:08:43

标签: url iis .net-3.5

我遇到了iis设置的默认文档问题。在我的网站(http:// mysite)中,我提供了默认文档作为登录页面。当用户键入url(http:// mysite)时,它会将用户重定向到登录页面,但不会显示完整的URL(http://mysite/login.aspx)。看起来默认文档是server.transfer而不是response.redirect。因此,当用户输入他们的凭据然后单击登录时,它再次将他们重定向到登录,并从那里工作正常。因此用户必须输入两次凭据。

我的应用程序是在.NET 3.5上开发的。

有没有办法可以实现response.redirect。

3 个答案:

答案 0 :(得分:3)

将index.html用作基目录中的默认文档。在此index.html中,使用元刷新或javascript重定向到您的login.aspx页面。请参阅以下示例元刷新代码。

您的项目

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>

答案 1 :(得分:1)

在与默认文档相同的文件夹中,将文本文件命名为web.Config(no .txt,.xml或任何其他扩展名),其中包含以下内容:

<?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>

答案 2 :(得分:0)

在您的登录页面的Page_Init中写下以下行。

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