就是页面登陆问题。
1、到底用什么来管理用户登陆,我现在用的session来控制,但是自己不知道是不是这样用,我用的很简单,在每个页面都判断,session 的值是否存在,如果存在,则证明登陆,不存在则没登陆。但是貌似这样太蛮烦,每页都要写。
2、权限也不好判断,都是机械的方法,很不好。
自己没有规范,都是靠自己想,很多不对,能不能介绍一个好的规范,或者切实可行的方法。多谢。

解决方案 »

  1.   

    我是用Session。你说的是后台管理吧。你可以写模板呀,里面写一次就行了,不必每个页面写了。如果不用模板,你可以写个方法,每个页面调用一下就行了。
    权限的话有很多方法,可以从最简单的到最复杂的,你能实现网站的功能就行了。
      

  2.   

    权限最好是继承父类判断,不用每个页面判断:如 public partial class BrandAdd : business.Web.UI.UserPage
    在UserPage里做登录或权限判断。。
      

  3.   

    登陆的话  多数用session   流量大的话   可以考虑session+cookie  我一般是把验证代码提出来  每个页面调用下
    至于权限就不知道了   感觉一方面要权限划分设计好   我一般就是写成字符串  登录时直接拆分放到数组里  
      

  4.   

    写个类,下面的代码可以参考:/// <summary>
            /// 用户操作超时
            /// </summary>
            public bool CheckTimeOut()
            {
                //指定登陆页面路径
                string url = Request.ApplicationPath + "/Login.aspx";
                string languageType = (string)Session["LanguageType"];
                if (languageType==""||languageType==null)
                {
                   languageType=PageCommon.GetRegisterKey();
                }
                string scriptStr = "<script language='JavaScript'>alert('操作超时,请重新登录!');window.parent.location.href='" + url + "';</script>";
                if (Session["LoginName"] == null)//超时提示用户,转向登陆页面
                {
                    Application.Lock();
                    if (Application["UserCount"] == null)
                    {
                        Application["UserCount"] = null;
                    }
                    else if ((int)Application["UserCount"]==0)
                    {
                        Application["UserCount"] = null;
                    }
                    else
                    {
                        Application["UserCount"] = (int)Application["UserCount"] - 1;
                    }
                    Application.UnLock();
                    //清除所有session值
                    Session.RemoveAll();
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", scriptStr, false);
                    return true;
                }
                else
                {
                    Session["LanguageType"] = languageType;
                    string info = (string)Session["UserID"];
                    Session["UserID"] = info;
                    info = (string)Session["LevelEmployee"];
                    Session["LevelEmployee"] = info;
                    info = (string)Session["EmployeeID"];
                    Session["EmployeeID"] = info;
                    info = (string)Session["LoginName"];
                    Session["LoginName"] = info;
                    info = (string)Session["userType"];
                    Session["userType"] = info;
                    Session.Timeout = 200;
                    return false;
                }
            }
      

  5.   

    用内置的用户成员资格吧,挺好的,具体的查看msdn
      

  6.   

    平常都是这么做的,与用Form表单验证有什么区别;
    比如我后台有个登录,然后注册用户又有一个登录,怎么用Form验证,比如:
    <authentication   mode= "Forms ">
    <forms   name= "Checked "   loginUrl= "http://localhost/WebApplication1/login.aspx "   protection= "All "   timeout= "6000 "   />
    </authentication> 
    那会话失效后不是链接到同一页面了。