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。
我已閱讀過有關MembershipUser
和MembershipProvider
。並且所有的驗證內容都在標準ASP.NET MVC
模板中執行。
所以,如果我使用標準會員/會員 - 用戶域邏輯去哪裏?那麼我應該通過Post
實體來限制操作嗎?通過設置Authorize
屬性的操作..所以他們將作爲權限?