以前,我已将 login.aspx 添加到IIS中的默认文档部分。
但是,当有人访问该应用程序时,需要登录两次。第一个不会说任何错误消息或没有重定向到应用程序中的下一页。第二个实际上会将用户重定向到预期的页面。并且用户两次都使用正确的凭据。
只要我从IIS中的默认文档部分删除 login.aspx ,用户就会提供应用程序的完整链接(〜/ login.aspx ),问题消失了,因为它只需要登录一次。
有谁知道为什么会这样?
答案 0 :(得分:1)
为了解决此问题,在默认文档的Page_Load事件中,必须检查以下内容:
if (this.User.Identity.IsAuthenticated)
{
Response.Redirect("somepage.aspx");
}
答案 1 :(得分:0)
您是否已将索引页设置为默认值并显示?
根据您的稀缺信息,我可以找到一个(可能很多)解释:
首先你到了yoursite.com(没有指定login.aspx)它会在幕后重定向到login.aspx但是url保持不变。当您从login.aspx提交时,它可能会转到其他(现有)页面,该页面将用户重定向到login.aspx(这次重写URL)。
如果您想要更好的解释,则需要提供更多详细信息
答案 2 :(得分:0)
在Global.asax中添加以下行
void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.QueryString.ToString().EndsWith("ReturnUrl=%2f"))
System.Web.HttpContext.Current.Response.Redirect("~/login.aspx");
if (Request.AppRelativeCurrentExecutionFilePath == "~/")
HttpContext.Current.RewritePath("login.aspx");//This is the default page to navigate after a successful login.
}