【发布时间】:2014-12-20 04:39:47
【问题描述】:
我正在开发一个用户登录并拨打电话的 REST API 项目。为了做到这一点,我创建了一个 cookie,我在其中加密了用户名。我的服务器已部署,并且发生了一些非常奇怪的事情。有时我只是没有收到响应中的 cookie。在这种情况下,我只需要在 web.config 文件中进行任何修改,它就会重新开始工作......我真的不明白为什么......有什么想法吗?
这是我的登录代码:
[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);
}
}
【问题讨论】:
标签: c# asp.net-mvc cookies httpresponse