如何使.NET WebForm路由与授权一起工作
我有从数据库注册到asp.net网站(非MVC)的路由。路线注册正常,它们都在我登录时工作。我要做的是根据一些路线数据创建一个登陆页面:
页面是[site] / landing / dell
路线看起来像是:“登陆/ {客户端}”并且它路由到我的页面Login.aspx,在那里我让客户端离开路线,然后根据值显示一些自定义品牌数据。
在我的web.config中,我将我的身份验证模式设置为表单,我的loginUrl =“Login.aspx”
当用户没有授权cookie时,它会将用户重定向到:
[site] /Login.aspx?ReturnUrl=%2flanding%2fdell而不是保留路由网址,并显示正确的数据。 IIS服务器实际上根本不处理路由,只是将用户发送到Login.aspx页面。
我已经尝试了几个添加到我的web.config:
<location path="landing"><system.web><authorization><allow users="*"/></auth></sys.web></loc>
等,以及许多变化,但似乎没有任何作用。
想法有人吗?我认为这是一个常见的问题,而且没有很好的记录。
没有找到相关结果
已邀请:
1 个回复
抚驰
现在,在web.config中,需要添加一个条目:
在Global.asax文件的Application_Start中,只需调用RegisterRoutes函数:
重新启动服务器,然后完成。现在您登录页面的路线将起作用,但您的所有其他路线都是安全的。如果您需要公开另一条路线,您只需将路径的基本路径添加到system.web授权部分,并允许users =“*”。 另一件事就是希望能够帮助他人的是能够将所有javascript(js),图像(psd,jpg,gif),甚至是路由处理程序中的任何静态文件。在整个网络上,解释了.axd和.asmx,但是在处理webforms模型中的路由时,我从未在某个位置找到如何忽略其他静态文件类型。 我希望这可以帮助其他人,并节省他们用于跟踪所有这些并自己完成所有单元测试的时间。 享受乡亲。