我遇到了iis设置的默认文档问题。在我的网站(http:// mysite)中,我提供了默认文档作为登录页面。当用户键入url(http:// mysite)时,它会将用户重定向到登录页面,但不会显示完整的URL(http://mysite/login.aspx)。看起来默认文档是server.transfer而不是response.redirect。因此,当用户输入他们的凭据然后单击登录时,它再次将他们重定向到登录,并从那里工作正常。因此用户必须输入两次凭据。
我的应用程序是在.NET 3.5上开发的。
有没有办法可以实现response.redirect。
答案 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