1. 问题有点大,你还是先看看相关例子和资料吧:
Explained: Forms Authentication in ASP.NET 2.0
http://msdn.microsoft.com/en-us/library/ff647070.aspx2. User.Identity.Name 就是当前登录的用户名。

解决方案 »

  1.   

    session记录,在加载页面前判断,没就返回登入见面
      

  2.   

    登陆成功后,用Session记录当前用户的ID;登陆不成功该Session为空,用户访问其他页面时先判断Session是否为空。
    if(bLoginSuccess)
    {
      Session['uid'] = this.txtUid.Text;
    }
    else
    {
       Session['uid'] = String.Empty;
    }///////////////////////////////////////if(String.IsNullOrEmpty(Session['uid'].ToString()))
    {
      // Redirect to Login Page;
    }
      

  3.   


    session  是一个相当有用的东东
      

  4.   

    執行:
      if (Session["User_id"].ToString() == null)
                 {
                     Response.Redirect("login.aspx");
                 }
    提示:並未將物件參考設定為物件的執行個體。
    登陸頁麵這麼寫的:
     if (Convert.ToInt32(cmd.ExecuteScalar()) > 0)
                    { 
                        Response.Redirect("default.aspx");
                        Session["User_id"] = tbx_username.Text.Trim().ToString();                }
                    else
                    {
                        Label1.Text="用户名或密码不正确,请重新输入!";
                        tbx_username.Text="";
                        tbx_password.Text="";
                        if (Convert.ToInt32(cmd.ExecuteScalar()) > 0)
                    {                    
                        Response.Redirect("default.aspx");
                        sqlcon.Close();
                        Session["User_id"] = tbx_username.Text.Trim().ToString();                }
                    else
                    {
                        Label1.Text="用户名或密码不正确,请重新输入!";
                        tbx_username.Text="";
                        tbx_password.Text="";
                       Session["User_id"] = String.Empty;                }
                    }
      

  5.   

    创建一个BasePage类,继承System.Web.UI.Page,
    重载OnLoad方法,
    在里面检查SESSION是否过期,新建一个CheckLogin方法
    如果过期,表示没登录,跳转到Login页面
    如果没过期,将Session转为实体对象备用。
    然后项目内需要登录访问的页面全都继承BasePage    public class BasePage : System.Web.UI.Page
        {
            public DAL.Employee SessionUser = new DAL.Employee();
            public DAL.Dept SessionDept = new DAL.Dept();
            protected override void OnLoad(EventArgs e)
            {            if(!CheckLogin())
                {
                    Response.Redirect("/Login.aspx",true);
                }
                base.OnLoad(e);
            }
            private bool CheckLogin()
            {
                bool blnTemp = false;
                if (Session["User"] != null && Session["Dept"] != null)
                {
                    blnTemp = true;
                    SessionUser = Session["User"] as DAL.Employee;
                    SessionDept = Session["Dept"] as DAL.Dept;
                }
                return blnTemp;
            }
        }
      

  6.   

    呵呵,才看到另一个帖子很多人说session很不稳定,建议不要用,这边又有更多人建议用session,有意思
      

  7.   


    这是一种常用方法。说不稳定可能是因为它经常超时。如果建议不要用,为什么还会有大规模分布式SESSION服务器的解决方案。
      

  8.   

    session控制好的话没有问题啊,再说现在一般都是用session来判断这个的
      

  9.   

    你可以考虑用AppDomain.CurrentDomain.SetData();整个应用程序域,System.Threading.Thread.AllocateDataSlot()如果一个用户登录相当于一个线程的话可以考虑用这个