自定义RoleProvider是否可以在ASP.NET MVC中使用[Authorize] on action方法?

时间:2010-02-20 17:56:38

标签: asp.net asp.net-mvc roleprovider

我正在制作自定义MembershipProvider和RoleProvider。

我有使用Roles和UsersInRoles的数据库表,我使用LINQ-to-SQL创建表的对象。

在动作方法上调用[Authorize]时,它是否可以与我的自定义RoleProvider一起使用? 如何知道用户是否经过身份验证以及用户是否处于适当的角色?

1 个答案:

答案 0 :(得分:1)

答案是肯定的。 AuthorizeAttribute 在内部使用 User.IsUserInRole()方法。但您必须将自定义提供程序设置为默认提供程序。

<强>方案

启用角色管理后, RoleManagerModule HttpContext.User 值替换为 RolePrincipal 的新实例。 RolePrincipal 也在内部使用 Roles.IsUserInRole