ASP.NET路由和表单身份验证

ASP.NET路由和表单身份验证,asp.net,forms-authentication,url-routing,Asp.net,Forms Authentication,Url Routing,我有一个ASP.NET网站(不是MVC),在文件夹/users中有网页,除非用户登录,否则无法访问。在/users文件夹中,我有一个web.config文件,其中包含以下内容: <?xml version="1.0"?> <configuration> <system.web> <authorization> <deny users="?"/> </authorization> </

我有一个ASP.NET网站(不是MVC),在文件夹/users中有网页,除非用户登录,否则无法访问。在/users文件夹中,我有一个web.config文件,其中包含以下内容:

<?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>
</configuration>

,然后将其转换为/users/myaccount.aspx页面作为该路由的HTTPHandler,用户不会被定向到login.aspx页面以提供凭据


不知道该怎么处理。各位有什么想法吗?

好的,找到了我自己问题的答案

我创建了一个实现IRoutHandler接口的自定义类。除了我没有显式地调用UrlAuthorizationModule来确定当前用户是否被授权查看请求路由的特定HTTPHandler(页面)之外,这一切都非常有效

因此,解决方案是不实现IRouteHandler接口,而是继承PageRouteHandler类并重写所需的方法,以便在调用PageRouteHandler.GetHTTPHandler方法之前添加必要的自定义代码

世界上一切又好了!:)

<authentication mode="Forms">
  <forms loginUrl="~/account/login.aspx" timeout="2880" />
</authentication>