我有一个带有标准帐户控制器的常规 MVC 应用程序。我在 UserProfile 类中添加了几个字段,所以现在看起来像这样:
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public string FullName { get { return FirstName + " " + LastName; } }
public int GroupId { get; set; }
[ForeignKey("GroupId")]
public ICollection<Group> Groups { get; set; }
}
所以,基本上说用户可以分配到多个组。(同样在 Group 类中,我说 Group 可以包含多个用户,显然)。
现在,每个用户都必须具有特定的角色。(管理员、教师、学生等)
我通过遵循这样的在线教程添加了角色支持:
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
现在我想按 RoleName 过滤所有用户。但我没有办法做到这一点。
IE。像这样的东西。Users.Where(x=>x.RoleName=="Admin").Select(x=>x.FullName)
(Users
是 Group 类型的属性ICollection<Users>
)。我如何在没有角色类的情况下获得角色?