웹 응용 프로그램 ASP.NET MVC가 있습니다. 4. 사용자가 응용 프로그램에 로그인하면 세션에 자신의 정보를 UserCtx 클래스의 객체로 씁니다. 이전에, 내가 쿠키를 만들 :세션 객체가 ASP.NET MVC 4에서 잠시 후 null입니다.
public class UserCtx
{
public static UserCtx UserLogged
{
get
{
UserCtx userCtx = ((UserCtx)HttpContext.Current.Session["UserCtx"]);
return userCtx;
}
}
}
:public ActionResult executeLogin(LoginModel model)
{
if (ModelState.IsValid)
{
FormsAuthentication.SetAuthCookie(model.UserName, false);
UserCtx userCtx = ds.SetUserCtx(model.UserName, model.Password);
Session["UserCtx"] = userCtx;
return Redirect(returnUrl ?? "/Offer");
}
else
{
return View("Index");
}
}
가 쉽게 세션에서 개최 객체에서 작동 할 수 있도록하기를, 내가 응용 프로그램에서 사용하는 정적 속성을 생성
예를 들어 나는 종종보기에이 속성을 사용 : 약간의 시간 후, 일
@if (UserCtx.UserLogged.ADMIN)
{
@Html.Partial("_gvNetLogPartial")
}
그러나 변수가 null 인 것은 사실이지만 왜 이런 일이 발생하는지 알지 못합니다. 또한 web.config에서 시간 제한을 설정했습니다.
또한 세션의 값을 확인하는 모든 컨트롤러에 필터가 있습니다. 다음은 필터입니다.
public class CheckSessionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.RequestContext.HttpContext.Session["UserCtx"] == null)
{
FormsAuthentication.RedirectToLoginPage();
}
}
}
정적 속성을 사용하기 때문에이 오류가 나타날 수 있습니다.