2

我不確定它應該如何工作。所以我在我的域模型中有一個聚合(Post - >Feedbacks; Post - >Category)。我一直在想User班的地方。我首先想到的是實現使用狀態模式User類:確定應用程序中的用戶類別地點

interface IUserRole 
{ 
    // for example we got something like this: 
    Boolean CanPost { get; } 
    Boolean CanEdit { get; } 
    Boolean CanFlag { get; } 

    void AssignRole(IUserRole role, User user); 
} 

public sealed class AdministratorRole : IUserRole 
{ 
    public Boolean CanPost { get { return true; } } 
    public Boolean CanEdit { get { return true; } } 
    public Boolean CanFlag { get { return true; } } 

    public void AssignRole(IUserRole role, User user) 
    { 
     user.Role = role; 
    } 
} 
public sealed class NewMemberRole : IUserRole 
{ 
    public Boolean CanPost { get { return true; } } 
    public Boolean CanEdit { get { return false; } } 
    public Boolean CanFlag { get { return false; } } 

    public void AssignRole(IUserRole role, User user) 
    { 
     throw new NotSupportedException("text"); 
    } 

} 

public class User // : Entity<User> 
{ 
    private IUserRole role; 
    public class User(String name, String pwd, IUserRole role) 
    { 
     // ... 
     this.role = role; 
    } 

    public Boolean CanPost { get { return this.role.CanPost; } } 
    public Boolean CanEdit { get { return this.role.CanEdit; } } 
    public Boolean CanFlag { get { return this.role.CanFlag; } } 

    public void AssignRole(IUserRole role, User) 
    { 
     this.role.AssignRole(role, user); 
    } 

    public String Name { get; set; } 
    public String Password { get; set; } 
}  

在那一步,我一直在考慮,包括User到域模型,然後用它直通NHibernate的DAL/DAO。

我已閱讀過有關MembershipUserMembershipProvider。並且所有的驗證內容都在標準ASP.NET MVC模板中執行。

所以,如果我使用標準會員/會員 - 用戶域邏輯去哪裏?那麼我應該通過Post實體來限制操作嗎?通過設置Authorize屬性的操作..所以他們將作爲權限?

回答

0

是,在ASP.NET MVC應用程序,你有/拒絕一些用戶/角色的行動能力授權。 它適用於項目中定義的成員資格提供者。

.NET默認情況下帶有2個成員資源提供程序:一個用於sqlserver,一些腳本可以運行,另一個基於ActiveDirectory成員資格。

您也可以自己製作MembershipRole供應商。通過這種方式,您將擁有爲您的域對象/行爲定製的成員資格提供程序。

相關問題