【问题标题】:Where does the application cookie go when created?创建时应用程序 cookie 去哪里了?
【发布时间】:2016-02-22 05:17:42
【问题描述】:

我正在根据blog 使用 Owin 进行身份验证,当我执行以下操作时,我应该得到一个(应用程序)cookie。我不确定如何验证我是否真的得到了一个。所以它很可能在内存或磁盘的某个地方,但我对安全问题一无所知,无法确定。

List<Claim> claims = new List<Claim> { new Claim("Donkey", "Hazaa") };
ClaimsIdentity identity = new ClaimsIdentity(
  claims, DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties
{
  AllowRefresh = false,
  IsPersistent = false,
  ExpiresUtc = DateTime.Now.AddMinutes(1)
});

我无法通过能够/无法登录来进行验证,因为这只是一个没有任何骨干的假人。在这个阶段我唯一需要做的就是确认 something 到达 somewhere 并且在一分钟过去后它消失。如果有一个实际的 cookie 文件在某处弹出然后在一段时间后就消失了,那就太棒了。有这样的吗?

【问题讨论】:

    标签: c# asp.net-mvc authentication cookies owin


    【解决方案1】:

    当然可以,但是一旦请求并验证了身份验证,Cookie 就会发送到浏览器。 cookie 的行为与以前版本的 cookie auth 中的表单身份验证相同,因此是浏览器接收和管理 cookie 的任务;在每个 HTTP 请求上,浏览器都会发送其 cookie,这些 cookie 由 OWIN 处理以检查身份验证。

    获取代码并在内存上实现一个简单的授权(如用户:abc,pass:123)并检查浏览器如何接收cookie。顺便说一句,cookie 和令牌验证之间的唯一区别是 cookie 会在每个请求上自动发送,而在令牌验证上,您需要在标头上显式发送令牌信息。

    请注意,cookie 身份验证适用于浏览器,因为移动应用程序或其他需要连接到您的 API 的应用程序将无法访问 cookie 响应,例如在桌面应用程序中。

    问候

    【讨论】:

    • 我关注了a hint 并找到了 cookies.sqlite 文件,但是当我打开它时,几乎看不到任何内容。我该如何准确地验证 cookie 是否已交付给我?
    • 在浏览器上执行登录。然后,您可以使用 firebug (Firefox) 或 chrome 开发人员工具查看生成的 cookie。顺便说一句,如果您出于安全目的仅发送声明,则 cookie 的内容将被加密
    猜你喜欢
    • 1970-01-01
    • 2012-09-23
    • 2012-07-06
    • 1970-01-01
    • 2011-04-19
    • 2022-06-15
    • 1970-01-01
    • 2023-04-09
    • 2012-02-04
    相关资源
    最近更新 更多