Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
必须登录两次asp.net应用程序,因为;默认文档";在IIS中_Asp.net_Iis_Login_Default Document - Fatal编程技术网

必须登录两次asp.net应用程序,因为;默认文档";在IIS中

必须登录两次asp.net应用程序,因为;默认文档";在IIS中,asp.net,iis,login,default-document,Asp.net,Iis,Login,Default Document,以前,我在IIS的默认文档部分添加了login.aspx 但是,当有人访问应用程序时,需要登录两次。第一个不会显示任何错误消息,也不会重定向到应用程序中的下一页。第二种方法实际上是将用户重定向到预期的页面。而且用户两次都使用了正确的凭据 当我从IIS中的默认文档部分删除了login.aspx,并且用户提供了应用程序的完整链接(~/login.aspx),问题就消失了,因为只需要登录一次 有人知道为什么会发生这种情况吗?您是否将索引页设置为默认和当前 从您稀少的信息中,我可以找到一种(可能有多种)

以前,我在IIS的默认文档部分添加了login.aspx

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

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


有人知道为什么会发生这种情况吗?

您是否将索引页设置为默认和当前

从您稀少的信息中,我可以找到一种(可能有多种)解释:

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


如果您想要更好的解释,您需要提供更多详细信息来解决此问题,在默认文档的页面加载事件中,必须检查以下内容:

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

来源:

在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.

}

谢谢你的回复。不幸的是,没有其他页面可以重定向到“幕后”。我很乐意提供更多与我的问题相关的细节。请让我知道您的login.aspx中有一个表单,此表单会发布到某个页面,处理表单输入(验证用户名和密码)的页面[formProcessor.aspx]会重定向到正常处理页面[validUser.aspx],如果用户名和密码有效,则返回login.aspx。在这里,我描述了正常的标准行为,在方括号中给出了供参考的示例页面名称,因为您自己没有给出任何细节。当登录表单提交到[formProcessor.aspx]时,此处理页面可能会检查referrer以查看请求是否来自login.aspx。为了简化您的生活,请添加客户端重定向。这种情况与问题中所述的用户凭据无关。页面在第二次登录尝试中被重定向,而不是第一次。无论如何,谢谢你的帮助。我并不是说这与用户凭据有关。请重新阅读我的评论。我是说,这一切都与你的页面处理它们的方式有关。因为它们是由您的页面处理的,而您没有提供足够的详细信息,所以我将抓住任何进一步的尝试来帮助您。