我正在制作自定义MembershipProvider和RoleProvider。
我有使用Roles和UsersInRoles的数据库表,我使用LINQ-to-SQL创建表的对象。
在动作方法上调用[Authorize]时,它是否可以与我的自定义RoleProvider一起使用? 如何知道用户是否经过身份验证以及用户是否处于适当的角色?
答案 0 :(得分:1)
答案是肯定的。 AuthorizeAttribute 在内部使用 User.IsUserInRole()方法。但您必须将自定义提供程序设置为默认提供程序。
<强>方案强>
启用角色管理后, RoleManagerModule 将 HttpContext.User 值替换为 RolePrincipal 的新实例。 RolePrincipal 也在内部使用 Roles.IsUserInRole 。