我需要訪問ASP.NET MVC 2應用程序的控制器中的用戶特定數據。我的控制器類有2種控制器方法:我可以使用HttpContext.Application而不是Session來存儲會話特定數據嗎?
[ControllerSessionState(ControllerSessionState.ReadOnly)]
public class CalendarController : BasicController
{
[Authorize]
public ActionResult ControllerMethod1()
{
//reads session specific data
}
[Authorize]
public ActionResult ControllerMethod1()
{
//stores session specific data
}
}
我想請求被並行化,也就是ControllerMethod1應該能夠平行ControllerMethod2運行。爲此,我將會話標記爲ReadOnly。但是,ControllerMethod2必須將數據寫入「會話」。由於這是不允許的,我想將數據存儲在HttpContext.Application中。我可以用對象的名稱編碼用戶標識,例如:
HttpContext.Application["Data" + currentUser.UserId] = <<my_data>>;
我可以這樣做嗎?這種方法有什麼缺點嗎?
是的,有一個缺點:這種方法仍然沒有解決併發問題,並增加了處理自定義鍵的複雜性('「Data」+ currentUser.UserId') – GolfWolf