必须登录两次asp.net应用程序,因为;默认文档";在IIS中
以前,我在IIS的默认文档部分添加了login.aspx 但是,当有人访问应用程序时,需要登录两次。第一个不会显示任何错误消息,也不会重定向到应用程序中的下一页。第二种方法实际上是将用户重定向到预期的页面。而且用户两次都使用了正确的凭据 当我从IIS中的默认文档部分删除了login.aspx,并且用户提供了应用程序的完整链接(~/login.aspx),问题就消失了,因为只需要登录一次必须登录两次asp.net应用程序,因为;默认文档";在IIS中,asp.net,iis,login,default-document,Asp.net,Iis,Login,Default Document,以前,我在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。为了简化您的生活,请添加客户端重定向。这种情况与问题中所述的用户凭据无关。页面在第二次登录尝试中被重定向,而不是第一次。无论如何,谢谢你的帮助。我并不是说这与用户凭据有关。请重新阅读我的评论。我是说,这一切都与你的页面处理它们的方式有关。因为它们是由您的页面处理的,而您没有提供足够的详细信息,所以我将抓住任何进一步的尝试来帮助您。