ASP.NET&Spring.NET&NHibernate最佳实践(九)——第4章权限子系统(2)

4.1. 权限子系统领域模型层(DomainModel)
应用程序(Application.cs)
using System;
using System.Collections.Generic;
using System.Text;

namespace Guushuuse.SalaryPrj.Security.DomainModel
{
    /**//// <summary>
    /// 应用程序
    /// </summary>
    [Serializable]
    public class Application
    {
        private int _id;
        private string _name;
        private string _description;

        属性#region 属性

        /**//// <summary>
        /// 自动编号
        /// </summary>
        public virtual int ID
        {
            get { return _id; }
            set { _id = value; }
        }

        /**//// <summary>
        /// 名称
        /// </summary>
        public virtual string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        /**//// <summary>
        /// 说明
        /// </summary>
        public virtual string Description
        {
            get { return _description; }
            set { _description = value; }
        }

        #endregion 属性

        构造函数#region 构造函数

        /**//// <summary>
        ///
        /// </summary>
        public Application()
        {
            this._id = -1;
            this._name = String.Empty;
        }

        #endregion 构造函数

        方法#region 方法

        /**//// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return this._name;
        }

        /**//// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            Application application = obj as Application;

            if (application != null && application.ID == this._id)
            {

                return true;
            }
            else
            {
                return false;
            }
        }

        /**//// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {

            return base.GetHashCode();
        }


        #endregion 方法
    }
}

角色(Role.cs)
using System;
using System.Collections.Generic;
using System.Text;

namespace Guushuuse.SalaryPrj.Security.DomainModel
{
    /**//// <summary>
    /// 角色
    /// </summary>
    [Serializable]
    public class Role
    {
        private int _id;
        private string _name;
        private string _description;
        private Application _application;

        属性#region 属性

        /**//// <summary>
        /// 自动编号
        /// </summary>
        public virtual int ID
        {
            get { return _id; }
            set { _id = value; }
        }

        /**//// <summary>
        /// 名称
        /// </summary>
        public virtual string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        /**//// <summary>
        /// 说明
        /// </summary>
        public virtual string Description
        {
            get { return _description; }
            set { _description = value; }
        }

        /**//// <summary>
        /// 应用程序
        /// </summary>
        public virtual Application Application
        {
            get { return _application; }
            set { _application = value; }
        }

        #endregion 属性

        构造函数#region 构造函数

        /**//// <summary>
        ///
        /// </summary>
        public Role()
        {
            this._id = -1;
            this._name = "";
        }

        #endregion 构造函数

        方法#region 方法

        public override string ToString()
        {
            return this._name;
        }


        public override bool Equals(object obj)
        {
            Role role = obj as Role;

            if (role != null && role.ID == this._id)
            {

                return true;
            }
            else
            {
                return false;
            }
        }

        public override int GetHashCode()
        {

            return base.GetHashCode();
        }


        #endregion 方法
    }
}

用户(User.cs)
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Web.Security;

namespace Guushuuse.SalaryPrj.Security.DomainModel
{
    /**//// <summary>
    /// 用户
    /// </summary>
    [Serializable]
    public class User
    {
        private int _id;
        private string _username;
        private string _email;
        private string _password;
        private MembershipPasswordFormat _passwordFormat;
        private string _passwordSalt;
        private string _passwordQuestion;
        private string _passwordAnswer;
        private bool _isAnonymous;
        private bool _isApproved;
        private bool _isLockedOut;
        private DateTime _createDate;
        private DateTime _lastActivityDate;
        private DateTime _lastLoginDate;
        private DateTime _lastPasswordChangedDate;
        private DateTime _lastLockoutDate;
        private int _failedPasswordAttemptCount;
        private DateTime _failedPasswordAttemptWindowStart;
        private int _failedPasswordAnswerAttemptCount;
        private DateTime _failedPasswordAnswerAttemptWindowStart;
        private string _comment;
        private Application _application;
        private IList _roles;

        属性#region 属性

        /**//// <summary>
        /// 自动编号
        /// </summary>
        public virtual int ID
        {
            get { return _id; }
            set { _id = value; }
        }

        /**//// <summary>
        /// 登录名
        /// </summary>
        public virtual string Username
        {
            get { return _username; }
            set { _username = value; }
        }

        /**//// <summary>
        /// 电子邮件地址
        /// </summary>
        public virtual string Email
        {
            get { return _email; }
            set { _email = value; }
        }

        /**//// <summary>
        /// 密码
        /// </summary>
        public virtual string Password
        {
            get { return _password; }
            set { _password = value; }
        }

        /**//// <summary>
        /// 密码格式
        /// </summary>
        public virtual MembershipPasswordFormat PasswordFormat
        {
            get { return _passwordFormat; }
            set { _passwordFormat = value; }
        }

        /**//// <summary>
        /// 辅助密码验证
        /// </summary>
        public virtual string PasswordSalt
        {
            get { return _passwordSalt; }
            set { _passwordSalt = value; }
        }

        /**//// <summary>
        /// 密码提示问题
        /// </summary>
        public virtual string PasswordQuestion
        {
            get { return _passwordQuestion; }
            set { _passwordQuestion = value; }
        }

        /**//// <summary>
        /// 密码提示答案
        /// </summary>
        public virtual string PasswordAnswer
        {
            get { return _passwordAnswer; }
            set { _passwordAnswer = value; }
        }

        /**//// <summary>
        /// 是否是匿名用户
        /// </summary>
        public virtual bool IsAnonymous
        {
            get { return _isAnonymous; }
            set { _isAnonymous = value; }
        }

        /**//// <summary>
        /// 是否可以进行身份验证
        /// </summary>
        public virtual bool IsApproved
        {
            get { return _isApproved; }
            set { _isApproved = value; }
        }

        /**//// <summary>
        /// 是否因被锁定而无法进行验证
        /// </summary>
        public virtual bool IsLockedOut
        {
            get { return _isLockedOut; }
            set { _isLockedOut = value; }
        }

        /**//// <summary>
        /// 创建日期和时间
        /// </summary>
        public virtual DateTime CreateDate
        {
            get { return _createDate; }
            set { _createDate = value; }
        }

        /**//// <summary>
        /// 最后一次进行身份验证或访问应用程序的日期和时间
        /// </summary>
        public virtual DateTime LastActivityDate
        {
            get { return _lastActivityDate; }
            set { _lastActivityDate = value; }
        }

        /**//// <summary>
        /// 最后一次进行身份验证的日期和时间
        /// </summary>
        public virtual DateTime LastLoginDate
        {
            get { return _lastLoginDate; }
            set { _lastLoginDate = value; }
        }

        /**//// <summary>
        /// 最后一次更新密码的日期和时间
        /// </summary>
        public virtual DateTime LastPasswordChangedDate
        {
            get { return _lastPasswordChangedDate; }
            set { _lastPasswordChangedDate = value; }
        }

        /**//// <summary>
        /// 最后一次锁定的日期和时间
        /// </summary>
        public virtual DateTime LastLockoutDate
        {
            get { return _lastLockoutDate; }
            set { _lastLockoutDate = value; }
        }

        /**//// <summary>
        /// 密码重试次数
        /// </summary>
        public virtual int FailedPasswordAttemptCount
        {
            get { return _failedPasswordAttemptCount; }
            set { _failedPasswordAttemptCount = value; }
        }

        /**//// <summary>
        /// 密码失败尝试窗口打开的日期和时间
        /// </summary>
        public virtual DateTime FailedPasswordAttemptWindowStart
        {
            get { return _failedPasswordAttemptWindowStart; }
            set { _failedPasswordAttemptWindowStart = value; }
        }

        /**//// <summary>
        /// 密码提示答案重试次数
        /// </summary>
        public virtual int FailedPasswordAnswerAttemptCount
        {
            get { return _failedPasswordAnswerAttemptCount; }
            set { _failedPasswordAnswerAttemptCount = value; }
        }

        /**//// <summary>
        /// 密码提示答案失败尝试窗口打开的日期和时间
        /// </summary>
        public virtual DateTime FailedPasswordAnswerAttemptWindowStart
        {
            get { return _failedPasswordAnswerAttemptWindowStart; }
            set { _failedPasswordAnswerAttemptWindowStart = value; }
        }

        /**//// <summary>
        /// 其它自定义信息
        /// </summary>
        public virtual string Comment
        {
            get { return _comment; }
            set { _comment = value; }
        }

        /**//// <summary>
        /// 应用程序
        /// </summary>
        public virtual Application Application
        {
            get { return _application; }
            set { _application = value; }
        }

        public virtual IList Roles
        {
            get { return _roles; }
            set { _roles = value; }
        }

        #endregion 属性

        构造函数#region 构造函数

        /**//// <summary>
        ///
        /// </summary>
        public User()
        {
            this._id = -1;
            this._username = String.Empty;
            this._roles = new ArrayList();
        }

        public User(MembershipUser user)
        {

        }

        #endregion 构造函数

        方法#region 方法

        /**//// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return this._username;
        }

        /**//// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            User user = obj as User;

            if (user != null && user.ID == this._id)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /**//// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {

            return base.GetHashCode();
        }


        #endregion 方法
    }
}



原文出处:http://www.cnblogs.com/guushuuse/
金鳞岂是池中物,一遇风云便化龙