0
내 애플리케이션에 다음 코드가 있습니다. Constants.SESSION_USER는 문자열 값입니다. 나는 내가 이전에 AccountController
mvc에서 Ajax를 통해 액세스 할 때 세션이 null입니다.
[HttpPost]
public JsonResult GetSession()
{
User loggedInAccount = null;
if (this.UserAccount != null) // this.UserAccount is null
{
//get the user from the session
loggedInAccount = this.UserAccount;
}
}
이 GetSession()
에서 설정 한 사용자 세션에 접근하고 다음 코드에서 Session
public class AccountController : BaseController
{
[HttpPost]
public JsonResult Login(LoginViewModel loginView)
{
User loggedInAccount = null;
// some logic to validate the user
// if no validation issues
User loggedAccount = new User(loginView.ID);
//set the logged account into the session
this.UserAccount = loggedAccount;
}
}
에 사용자를 설정 한 경우
public class BaseController : Controller
{
public Account UserAccount
{
get
{
if (Session[Constants.SESSION_USER] is User)
{
return Session[Constants.SESSION_USER] as User;
}
return null;
}
set
{
Session[Constants.SESSION_USER] = value;
}
}
}
다음이다 메서드가 ajax 요청을 통해 호출되면 this.UserAccount
은 null
입니다.
때로는 제대로 작동하지 않는 경우가 있습니다. 여기서 뭐가 문제 야?
AJAX 요청은 세션 쿠키를 보내지 않습니다. 보안 문제를 원하지 않으면 인증을 재발 명하지 마십시오. – CodeCaster
@CodeCaster : 세션 쿠키가 자동으로 ajax 요청으로 전송됩니다. 그렇습니까? –
HttpOnly 쿠키가 아닌 경우. 모든 관례대로이 문제에 관해서는 아무 것도 말할 수 없습니다. – CodeCaster