.NET身份验证授权角色登录重读返回URL混淆
在我对.NET的身份验证/授权和登录重定向系统的工作原理的理解中,我肯定缺少一些东西。我有一个admin/default.aspx页面,该页面仅限于管理员用户,因此我有以下示例:.NET身份验证授权角色登录重读返回URL混淆,.net,asp.net,forms-authentication,.net,Asp.net,Forms Authentication,在我对.NET的身份验证/授权和登录重定向系统的工作原理的理解中,我肯定缺少一些东西。我有一个admin/default.aspx页面,该页面仅限于管理员用户,因此我有以下示例: <configuration> <system.web> <authorization> <allow roles="admin" /> <deny users="*" /> </aut
<configuration>
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
</system.web>
</configuration>
当用户到达此处时,如果他不是管理员,他将被重定向到web.config中指定的登录页面:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name="someName" timeout="60" path="/">
</forms>
</authentication>
带有返回url(看起来像是ReturnUrl=%2fAdmin%2fault.aspx)。现在,如果用户使用与“管理员”角色规范不匹配的凭据再次登录,他将被重定向到管理员/默认页面,然后再次返回登录页面
我想这一切都很好,但如果用户未登录,我似乎可以重定向到登录页面,但如果用户已登录但不符合角色要求,我可以将其重定向到另一个(主页或默认)页面
我该怎么做呢
提前感谢,
Rusty您可以通过以下几种方法来实现:
谢谢你的回复。与此同时,我根据这篇博文的想法想出了一个解决办法,结果证明它与你的#2建议相似。在登录页面上,我检查用户是否已经过身份验证,是否有返回URL——如果是,我只需重定向到主页。我本以为会有一个更正式的解决方案使用.Net的安全设置,但它现在起作用了..Net安全设置是为“大多数时间的大多数人”量身定做的,但它是为这样的可扩展性精心设计的!注:如果答案有帮助,不要忘记投票并接受答案(即使是你自己的答案),因为人们开始不愿意帮助那些不接受或不承认答案的人