0
在DB
中我有Role
和User
實體具有一對多關係。構建ASP.NET MVC中的自定義授權
我想要做的是構建自定義授權過濾器。我見過的所有教程都使用默認的ASP.NET
成員資格。我所知道的是我需要繼承AuthorizationAttribute
,但不知道我需要覆蓋哪些方法以及如何實現它們。
public class UserAuth : AuthorizeAttribute
{
}
在DB
:
角色
public class Role
{
[Key]
public int RoleID { get; set; }
[Required]
public int RolenameValue { get; set; }
[MaxLength(100)]
public string Description { get; set; }
// // // // //
public Rolename Rolename
{
get { return (ProjectName.Domain.Enums.Rolename)RolenameValue; }
set { RolenameValue = (int)value; }
}
public virtual ICollection<User> Users { get; set; }
}
用戶
public class User
{
[Key]
public int UserID { get; set; }
[Required]
[MaxLength(30)]
public string Username { get; set; }
[Required]
[MinLength(5)]
public string Password { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[MaxLength(30)]
public string FirstName { get; set; }
[MaxLength(50)]
public string LastName { get; set; }
[DataType(DataType.Date)]
public DateTime Birthdate { get; set; }
public int GenderValue { get; set; }
// // // // // // //
public Gender Gender
{
get { return (ProjectName.Domain.Enums.Gender)GenderValue; }
set { GenderValue = (int)value; }
}
public int RoleID { get; set; }
[ForeignKey("RoleID")]
public Role Role { get; set; }
+1,我做同樣的方式,但我加載的所有角色通過'OnPostAtuthenticate'中的授權存儲庫。 – jgauffin
如何實現MyCustomPrincipal? :P 編輯:我的意思是,如何正確實施它。只用'IsInRole()'? – Bip
從'GenericPrincipal'派生(http://msdn.microsoft.com/en-us/library/system.security.principal.genericprincipal.aspx)或實現'IPrincipal'接口 –