5

以前,我已将login.aspx添加到 IIS 的默认文档部分。

但是,当有人访问该应用程序时,需要登录两次。第一个不会说任何错误消息或没有重定向到应用程序中的下一页。第二个实际上会将用户重定向到预期的页面。并且用户两次都使用了正确的凭据。

一旦我从 IIS 的默认文档部分删除login.aspx,并且用户提供了应用程序的完整链接 (~/login.aspx),问题就消失了,因为它只需要登录一次。

有谁知道为什么会这样?

4

3 回答 3

1

为了解决这个问题,在 Default Document 的 Page_Load 事件中,必须检查如下:

if (this.User.Identity.IsAuthenticated)
{
    Response.Redirect("somepage.aspx");
}

来源:asp.net Form Authentication change .net 2 to .net4

于 2012-08-30T14:52:25.900 回答
0

您是否已将索引页面设置为默认并存在?

从您稀缺的信息中,我可以找到一个(可能的许多)解释:

首先,您访问 yoursite.com(不指定 login.aspx),它会在后台重定向到 login.aspx,但 url 保持不变。当您从 login.aspx 提交时,它可能会转到其他(现有)页面,该页面将用户重定向到 login.aspx(这次重写 url)。

如果您想要更好的解释,您需要提供更多详细信息

于 2012-07-26T08:43:43.487 回答
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.

}
于 2017-04-13T13:38:58.787 回答