gpt4 book ai didi

当用户未经身份验证时,ASP.NET 会覆盖重定向中的默认 returnto 参数

转载 作者:行者123 更新时间:2023-12-02 15:39:49 24 4
gpt4 key购买 nike

我们使用带有角色的表单例份验证来限制对网站的某些页面和区域的访问。当用户未获得授权时,无论是因为他们未登录或没有所需的角色,他们都会被重定向到带有返回 URL 的登录页面。

我们使用授权标签在 web.config 中定义需要哪些访问权限,例如:

<authorization>
<deny users="?"/>
</authorization>

我们正在开发的 Web 应用程序使用 HttpContext.Current.RewritePath 来实现更友好的 URL 和动态页面。这样,对“/MyPages/MyDocuments.aspx!”的请求就会被重写为“/PageTypes/Library.aspx”或类似的内容。

但是,当应用程序因用户没有权限而重定向时,将使用 ReWritePath 而不是原始 URL。

我需要重写什么,以便返回 URL 是请求的 URL,而不是实际的心理路径?

最佳答案

根据您运行的 IIS 版本(6 或 7),答案可能会有所不同,但我怀疑问题是 ASP.NET 请求管道首先使用表单例份验证对用户进行身份验证,然后再运行RewritePath 代码/模块,从而覆盖正常的返回响应。

它们的关键可能是在身份验证/授权模块之前将重写模块插入管道。如果您使用原始代码而不是 HTTP 模块在基类、global.asax 等中执行此操作,请在执行代码之前首先检查用户是否有效/或授权。

ASP.NET Pipeline and Thoughts on Rewriting Vs Routing

关于当用户未经身份验证时,ASP.NET 会覆盖重定向中的默认 returnto 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361270/

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