在登录界面写:
//数据库判断用户名密码是否正确
然后:
IF(是正确的)
{
        Session["LoginUser"] = this.txt_Uid.Text.Trim();
        Response.Redirect("~/Default.aspx");
        }
        else
        {
            objJs.JsAlert("登录失败");
         
        }在需要用户登录的页面中:
if (Session["LoginUser"] != null)
        {
            Uname = Session["LoginUser"].ToString();
        }
        else
        {
            objJs.JsAlert("对不起,您没有登录");
            Response.Redirect("~/login.aspx");
        }
        if (!IsPostBack)
        {
            this.Label1.Text = Uname + "! 您登录成功了!";        }这样是最简单的了...大家在这基础上还有什么需要指点我的吗?

解决方案 »

  1.   

    应该没什么了,不过,要注意安全问题,考虑到是否要加密,解密!
    不过,我认为你只是用Session["LoginUser"] 来判断还是不够严密!
    可以多考虑一些!
      

  2.   

    讲到安全,要看你需要达到什么样的安全级别了。
    用SESSION也是可以攻陷的....
      

  3.   

    为什么不写个继承page的类来判断是否登录
    然后需要判断登录的页面都继承这个类
    这样修改登录判断的时候,只修改这个类就行了,否则的话,每个页面都要修改
    个人意见,仅供参考
      

  4.   

    登陆逻辑没什么可说的,就是每个页面判断登陆与否的代码应该像楼上那位说的,写在一个pagebase类里,所有页面继承与此类即可,这样的代码结构稍显老道!
      

  5.   

     学习下,我判断是否都是在一个类中发方法
    不知楼上的说继承是怎么做的    public class pagebase
        {
            public pagebase()
            {
                //
                // TODO: 在此处添加构造函数逻辑
                //
            }
            public void checkUser()
            {
                if (HttpContext.Current.Session["user"] == null)
                {
                    HttpContext.Current.Response.Write("未登陆!");
                }
            }    }
      

  6.   

    可是我没有提cookie!
    单纯是这样,没有什么弊端吗?
      

  7.   

    基本的登录验证足够了,还可以这样改进一下string uname = (string)Session["LoginUser"];
    if(uname == null)
    {
        //没有登陆,或超时
         //退出或其他动作
    }
    else
    {
        //验证成功
         //更多动作
    }
      

  8.   

            protected void i_login_Click(object sender, ImageClickEventArgs e)
            {
                try
                {
                    try
                    {
                        判读用户是否存在
                           判断用户是否启用
                           判断密码
                        
                           SetSession(Usersession);
                        Application[Usersession.UserID.ToString()] = 登陆时间;//用于判读登陆超时                       Response.Redirect("index.aspx");
                    }
                    catch (Exception ex)
                    {
                        
                    }
                }
                catch (Exception ex)
                {            }
            }
      

  9.   

    不要用session  很容易丢失的 建议你用cookies
      

  10.   

    cookies存储在本地啊.....是不是对安全性来讲不是很好?
      

  11.   

    需要判断 重复登陆 的 情况asp.net 实现 单点登录实现思路利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。
     程序代码
    string sKey = username.Text.ToString().Trim(); // 得到Cache中的给定Key的值
                 string sUser = Convert.ToString(Cache[sKey]); // 检查是否存在 
                 if (sUser == null || sUser == String.Empty)
                 {
                    
                     TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);//取得Session的过期时间
                     HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, null);//将值放入cache己方便单点登录
                   //成功登录
                 }
                 else if (Cache[sKey].ToString() == sKey)//如果这个账号已经登录
                 {
                     ClientScript.RegisterStartupScript(GetType(), "提示", "<script>alert('对不起,当前用户已经登录');</script>");
                     return;
                 }
                 else
                 {
                     Session.Abandon();//这段主要是为了避免不必要的错误导致不能登录
                 } 
      

  12.   

    为了安全起见,我一般都再加一层判断。if (Session["LoginUser"] != null)
            {
                Uname = Session["LoginUser"].ToString();
            }
            else
            {
                objJs.JsAlert("对不起,您没有登录");
                Response.Redirect("~/login.aspx");
            }
    //判断Session中的LoginUser是不是真的在数据库中存在,防止Session欺骗        
    if ((!IsPostBack)&& Users.IsExist(Uname)) 
            {
                this.Label1.Text = Uname + "! 您登录成功了!";        }