如果沒有,是否有辦法讓它安全?即使它用會話中的內容填充類成員不是公共類的靜態類?這意味着當多個用戶同時訪問應用程序時,該類/成員可能會來回彈出......對嗎?我錯過了什麼?以下代碼在多用戶Web應用程序中安全嗎?
從@M4N在這裏拍攝:https://stackoverflow.com/a/621620/158050
public class MySession
{
// private constructor
private MySession()
{
Property1 = "default value";
}
// Gets the current session.
public static MySession Current
{
get
{
MySession session =
(MySession)HttpContext.Current.Session["__MySession__"];
if (session == null)
{
session = new MySession();
HttpContext.Current.Session["__MySession__"] = session;
}
return session;
}
}
// **** add your session properties here, e.g like this:
public string Property1 { get; set; }
public DateTime MyDate { get; set; }
public int LoginId { get; set; }
}
在ASP.NET會話的本身這個類存儲一個實例,並允許您從任何類訪問類型安全方式的會話屬性,例如像這樣:
int loginId = MySession.Current.LoginId;
string property1 = MySession.Current.Property1;
MySession.Current.Property1 = newValue;
DateTime myDate = MySession.Current.MyDate;
MySession.Current.MyDate = DateTime.Now;
http://codereview.stackexchange.com/ – simonalexander2005
'不是公共類靜態' - 沒有。獲取者Current是靜態的,但類絕對不是。每個會話您將擁有一個「MySession」實例(或根本沒有)「 – Rob