日期:2014-05-18  浏览次数:20396 次

高分放送,又一个讨论问题
我现在一个后台管理系统,在管理用户登录和权限这个模块的设计中。。

背景:
我没有采用.net自带的成员资格管理的功能。

议题:
我想完全采用OOP的思想来做用户登录和权限管理,而不用Session来做
请大家给我一个建设性方案来很安全很干净的管理登录和权限控制模块?


------解决方案--------------------
http://blog.csdn.net/sw515/archive/2004/10/23/148257.aspx
------解决方案--------------------
如果你每一个页面都要判断,那你可以,自定义一个page类,所以要判断的页面都继承于你的自定义page类

如:
public class MyBasePage:System.Web.UI.Page
{
public override void Page_Load(object sender, EventArgs e)
{
if(PrivaligUser.IsUserLogin()) 

//登录成功 
}
else
{
Response.Redirect("~/login.aspx");
}

}




然后所有页面中,都继续于这个类就行
------解决方案--------------------
探讨
如果你每一个页面都要判断,那你可以,自定义一个page类,所以要判断的页面都继承于你的自定义page类

如:
public class MyBasePage:System.Web.UI.Page
{
public override void Page_Load(object sender, EventArgs e)
{
if(PrivaligUser.IsUserLogin())
{
//登录成功
}
else
{
Response.Redirect("~/login.aspx");
}
}
}


然后所有页面中,都继续于这个类就行

------解决方案--------------------
通过角色设置用户权限
http://www.cnblogs.com/b4n73/archive/2009/01/09/1372404.html
http://www.cnblogs.com/nehu/archive/2005/06/20/177942.aspx
------解决方案--------------------
这个是用户类,记录用户登陆信息
C# code

public class User
    {
        public User(string mUserCode ,string mUserName,string mIp)  //构造器
        {
            sUserCode = mUserCode;
            sUserName = mUserName;
            sIp = mIp;
        }
        #region 私有变量
        private string sUserCode;
        private string sUserName;
        private string sIp;
        #endregion

        #region 属性定义
        public string UserCode
        {
            get { return sUserCode; }
            set { sUserCode = value; }
        }

        public string UserName
        {
            get { return sUserName; }
            set { sUserName = value; }
        }

        public string IP
        {
            get { return sIp; }
            set { sIp = value; }
        }
        #endregion 
    }

------解决方案--------------------
你就完全自己抄一次ASP.NET 2.0內置的MembershipProvider和RolesProvider好了,確實那就是最佳的OO設計方案了——擴展性好,不包括冗餘的功能,同時能夠方便定製滿足不通場景的需求。

在大多數情況下,想要自己寫一個東西去超越Microsoft寫過的,那是不現實的。別人寫好了,你想要學習,那就認真學習好了。
------解决方案--------------------
我想完全采用OOP的思想来做用户登录和权限管理,而不用Session来做 
---------
你有什么证据证明成员资格不是OOP的?OOP和Session没有任何关系...

正如24楼所言...你想写一个超越成员资格的东西...可能性几乎没有...