1

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

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

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

4

1 回答 1

1

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

设想

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

于 2010-02-21T10:43:28.273 回答