【发布时间】:2014-04-15 17:13:21
【问题描述】:
当文件夹被配置为限制对用户的身份验证时,表单身份验证用于重定向到登录页面。在 web.config 中配置的文件夹中。
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
这会将您重定向到登录页面,并带有您最初想去的地方的返回网址。授权有效(Identity 2.0 Beta1 prerelease),但没有重定向到登录页面,尽管我在 Identity 上经历了很多,但我无法做到这一点。现在,在实现其他一切都很好的身份之后,当我尝试访问一个需要我登录的页面时,我看到一个 YSOD 说。
访问处理此请求所需的资源时出错。您可能无权查看请求的资源。
我使用了 vs2013 的默认模板,一旦我输入自定义路由,它就停止工作了,我尝试了很多东西,我就是无法让它工作..
我发现当我启用 FriendlyUrls 或资源的完整路径并使用 url 路由到限制为登录用户的资源时,它起作用了。
例如我有一个位于 /Account/nightlife/stream.aspx 的页面,其中包含文件夹 Account 中的 web.config
因此,当我使用完整路径时 它可以工作 并使用
将我发送到登录页面http://mylocaliis/login?ReturnUrl=%2FAccount%2Fnightlife%2Fstream.aspx (without the .aspx in the case of friendly urls)
当我几周前使用表单身份验证时,您可以在登录页面看到的自定义路由不存在这个问题
(即-routes.MapPageRoute(routeName:"login", routeUrl:"login",physicalFile:"~/Account/Login.aspx");)
但是使用 Identity 和自定义路由启用了重定向,我看到了 YSOD
例如如果我尝试使用其自定义路由 url 访问资源(当我未登录时)
localhost/stream (defined by the custom route - routes.MapPageRoute( "nightlife_stream", "stream", "~/Account/nightlife/stream.aspx" ); )
我看到了 YSOD。
【问题讨论】:
标签: asp.net webforms asp.net-membership url-routing asp.net-identity