gpt4 book ai didi

c# - 如何解决重定向循环

转载 作者:太空狗 更新时间:2023-10-29 22:26:56 24 4
gpt4 key购买 nike

我有一个 Web 应用程序,一些使用 Chrome 作为首选浏览器的用户在注销该应用程序并尝试重新登录时收到以下错误。

“这个网页有一个重定向循环”。

我的网络应用程序使用表单例份验证,FormAuthenticationModule 将用户重定向回我的应用程序的登录页面,所以我不能使用这种方法:

<customErrors mode="On" defaultRedirect="~/MyErrorPage.aspx" >

<error statusCode="401" redirect="~/NoAccess.aspx"/>

</customErrors>

相反,我将以下内容添加到我的 LoginPagePage_Load 事件中。

if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
{
Response.Redirect("~/NoAccess.aspx");
}

但是,由于我添加了这种方法,用户似乎遇到了“重定向循环”错误。

清除cookies后一切正常,但问题又出现了。

是否有我可以添加到我的代码中的永久性修复,或者我可以做些什么来防止这个问题的发生?

最佳答案

尝试将此添加到您的 web.config 文件中:

  <location path="NoAccess.aspx">
<system.web>
<authorization>
<allow users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>

这将关闭对此页面的任何授权,并应停止你的循环。

您还可以添加:

  <location path="Login.aspx">
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>

这将拒绝所有已通过身份验证的用户访问您的登录页面。结合这两者应该允许您为所有重定向添加自定义错误。

您还可以考虑为未经授权的访问创建一个目录(例如,public/)并将所有错误页面(不需要授权)放入其中。然后你可以这样做:

  <location path="public">
<system.web>
<authorization>
<allow users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>

您可以阅读有关位置的更多信息 here .更多关于授权 here .

关于c# - 如何解决重定向循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15894254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com