2011-03-12 27 views

回答

17

假設你的代碼是在頁面(或內嵌或後面的代碼中),你可以只使用...

DataType someValue = (DataType)Session["SessionVariableNameHere"]; //Getter 
Session["SessionVariableNameHere"] = someNewValue; //Setter 

顯然你需要,當你把它找回來了會議的正常會話變量,並飾演角色到相應的數據類型。

編輯 - 一個完整的例子

protected void Login1_LoggedIn(object sender, EventArgs e) 
{ 
    Session["LoginTime"] = DateTime.Now; 
} 

,後來在一個頁面加載...

protected void Page_Load(object sender, EventArgs e) 
{ 
    Literal1.Text = "Last Online: " + ((DateTime)Session["LoginTime"]).ToString("yyyy-MM-dd"); 
} 
3

當用戶輸入正確的用戶名密碼&。創建如果您使用的是在你的頁面母版頁只是檢查的Page_Load

page_load() 
{ 
       if(Session["SessionVariableName"] != null) 
       { 
         if(Session["SessionVariableName"]=="Flag") 
         { 
           //Valid User 
         } 
         else 
         { 
            //Invalid user 
         } 
       } 
       else 
       { 
          //Session expired 
       } 

} 
4

我通常定義(基地)頁面級屬性,並儘量避免硬將舉行標誌

if(userLoggedInSuccessfully) 
{ 
      Session["SessionVariableName"] = "Flag"; 
} 

會話 - 每次必須引用會話變量名稱時都要編碼。這裏有一個例子:

在Constants.cs:

public static class Constants 
{ 
    public static class SessionKeys 
    { 
    public static string MY_SESSION_VARIABLE = "MySessionVariable"; //Or better yet - a newly generated GUID. 
    } 
} 

在頁面的後臺代碼,定義你的財產:

protected MyType MyVariable 
{ 
    get 
    { 
    MyType result = null; 

    object myVar = Session[Constants.SessionKeys.MY_SESSION_VARIABLE]; 
    if (myVar != null && myVar is MyType) 
    { 
     result = myVar as MyType; 
    } 

    return result; 
    } 
    set 
    { 
    Session[Constants.SessionKeys.MY_SESSION_VARIABLE] = value; 
    } 
} 

在頁面的代碼隱藏,引用屬性:

//set 
MyVariable = new MyType(); 

//get 
string x = MyVariable.SomeProperty;