1
我想在我的web api非mvc應用程序中使用會話變量。Web api中會話狀態變量的用法
我已經在我的控制器
public class AuthenticateController : ApiController
{
[Route("api/CheckLogin")]
public string AuthenticateUser(Models.Customer customer)
{
HttpContextBase context = null;
var httpContext = context as HttpContextBase;
httpContext.Session["username"] = "sa";
}
啓用了global.aspx網頁會話
protected void Application_PostAuthorizeRequest()
{
HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
}
,但現在我得到空裁判的錯誤。
我怎樣才能做到這一點
請幫
讓我直截了當地說:你創建一個名爲'context'的變量,將它設置爲'null',將該空值作爲'HttpContextBase'強制轉換,然後嘗試使用它? 在某些時候,您必須將其設置爲等於當前上下文,或者至少將其設置爲某個非空值。即'context = HttpContext.Current;'。 – TheRotag
你不需要'HttpContextBase context = null;'行。你需要在使用它之前檢查httpContext是否爲非null。如果你試圖轉換的對象不是HttpContextBase類型,那麼'as'可以返回null。之後,您需要檢查用戶名是否已在會話中正確設置。通過檢查該值爲null來調試它,從Session對象中檢索。 – ManoDestra
我的確喜歡這個對象上下文; (Request.Properties.TryGetValue(「MS_HttpContext」,out context)) var httpContext = context as HttpContextBase;如果(httpContext!= null && httpContext.Session!= null) { httpContext.Session [「d」] =「sa」; } } – user2363957