私はかなり確実でないアプリケーションでユーザクラスの場所を決めます。だから私は自分のドメインモデル( - ; Post
- >Category
>Feedbacks
Post
)で集計しています。そして私はUser
クラスの場所について考えていました。私はNHibernateはDAL/DAOを通してそれを使用して、ドメインモデルに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
クラスを実装することでした。
私は約MembershipUser
とMembershipProvider
を読みました。すべての認証情報は標準のASP.NET MVC
テンプレートで実装されています。
したがって、標準メンバーシップ/メンバーシップユーザーを使用すると、ドメインロジックはどこに行きますか?私は、..アクションにAuthorize
属性を設定スルーPost
エンティティ上での動作を制限しなければならないので、彼らは権限として動作しますか?