ASP.net MVC:获取登录所需的角色?

时间:2009-07-24 07:11:40

标签: asp.net-mvc authorization roles

是否有任何通用方法来获取某些特定操作所需的角色?

详细说明我的问题是,我有例如2个角色“用户”和“管理员”以及具有以下内容的操作:

[授权(角色=“管理员”)] 公共类AdministrationController ...

如果用户未登录,则会获得登录屏幕。没关系。当角色为“Admin”的用户登录时,一切正常。但是如果具有“用户”角色的用户登录,他将不断显示登录屏幕,除了他已成功登录,但当然不是必需的角色。

因此,如果登录显示可以向他显示提示,告诉他已经登录,但他没有查看此页面所需的权限,那将是一件好事。此外,它可能会显示所需的角色。

谢谢, 迈克尔

2 个答案:

答案 0 :(得分:1)

您可以编写自定义 IActionFilter 属性。

看这篇文章: MVC – Custom Action Filters

Override Authorize Attribute in ASP.NET MVC

答案 1 :(得分:1)

我认为这主要源于默认AuthorizeAttribute设计,如果授权的任何部分失败,则显示登录页面。

您可能想要创建一个继承自AuthorizeAttribute的新类。然后,您可以覆盖默认行为并显示不同的页面。看到 http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/#comment-159就是一个很好的例子。