【问题标题】:Cookies disappearing in MVC4Cookie 在 MVC4 中消失
【发布时间】: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


    【解决方案1】:

    将 cookie 用于安静的 Web 服务有点反模式。只需在标题中包含用户名即可。

    至于为什么会超时,我怀疑这与您的会话超时有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2012-10-31
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      相关资源
      最近更新 更多