2014-12-19 1 views
0

사용자가 로그인하여 전화를 걸 수있는 REST API 프로젝트에서 작업하고 있습니다. 그렇게하기 위해 사용자 이름을 암호화하는 쿠키를 만듭니다. 내 서버가 배치되고 정말 이상한 일이 벌어지고 있습니다. 때로는 응답에서 쿠키를받지 못합니다. 이 경우 web.config 파일에서 수정을해야하며 다시 작업을 시작합니다 ... 나는 왜 그 이유를 이해하지 못합니다 ... 어떤 아이디어입니까?MVC4에서 쿠키 사라짐

[Route("login", Order = 1)] 
[HttpPost] 
[HttpGet] 
public async Task<HttpResponseMessage> Login([FromUri] string userId, [FromUri] string userPassword) 
{ 
    try 
    { 
     Tuple<string, string> result = userService.Authenticate(userId, userPassword); 

     string sessionIds = result.Item1; 
     string message = result.Item2; 
     CookieHeaderValue cookie = CreateSessionsCookie(sessionIds); 
     cookie.Secure = true; 

     // Store username for later use 
     CookieHeaderValue userCookie = new CookieHeaderValue(Strings.Id, Encryption.Protect(userId, Strings.Id)); 
     userCookie.Secure = true; 

     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, JsonConvert.DeserializeObject(message)); 
     response.Headers.AddCookies(new CookieHeaderValue[] { cookie, userCookie }); 

     return response; 
    } 
    catch (Exception ex) 
    { 
     return HandleException(ex); 
    } 
} 

답변

0

그것은 RESTful 웹 서비스를위한 쿠키를 사용하는 안티 패턴의 비트가 :

여기 내 로그인 코드입니다. 헤더에 사용자 이름을 대신 포함하십시오.

왜 이것이 시간 초과되는지에 관해서는 나는 당신의 세션 시간 초과와 관련이 있다고 생각합니다.