asp.net-mvc - 欧文记得浏览器到底是做什么的?

标签 asp.net-mvc owin asp.net-identity-2 authorize

在标准 ASP.Net MVC Identity 2.0 Owin 实现中的多个位置,您将看到 RememberBrowser,例如:

await signInManager.SignInAsync(user, isPersistent: isPersistent, rememberBrowser: false);

如果您确实将 RememberBrowser 设置为 true,我注意到我可以终止浏览器、终止 IIS Express、删除浏览器登录的用户,甚至重新启动我的计算机,并且浏览器仍被视为已登录 -在。不太好,考虑到删除的用户被视为授权/登录,这将导致 [Authorize] 属性后面的代码出现各种问题,该属性期望有一个有效的用户可以使用。

那么,rememberBrowser 到底在做什么,是否存在有人可能在 cookie 中伪造 RememberBrowser 来绕过 OWIN 登录的风险?似乎[Authorize]的目的是保证除了登录用户之外没有人可以访问给定的 Controller 操作,而rememberBrowser似乎是这一保证中的一个漏洞。

额外问题:有没有办法禁用rememberBrowser,这样即使伪造的cookie确实进来了,它也会被拒绝?

最佳答案

我认为rememberBrowser仅与双因素身份验证相关。因此,如果您将其设置为 true,浏览器将获取 TwoFactorRememberBrowser cookie,该 cookie 允许用户在登录过程中跳过 2FA 身份验证(如果启用)。

Is there a way to disable rememberBrowser so that even if a forged cookie did come in, it would be rejected?

从 RememberBrowser 创建的 cookie 与身份验证 cookie 结合使用。它只会允许用户跳过 2FA,因此如果不先进行身份验证,它是没有用的。

关于asp.net-mvc - 欧文记得浏览器到底是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208144/

相关文章:

jquery - 在 Web Api 2 中发帖

c# - ASP.net MVC 发送邮件

jquery - 是否有在 JavaScript 函数中使用 HtmlHelper 的正确方法?

jquery - 使用 JQuery 在 ASP.Net MVC 中加载部分 View - 首选哪种方法?

c# - 如何在WCF服务中添加OWIN Startup

asp.net-mvc - 动态设置 OWIN(按域)

asp.net-mvc - ASP.NET MVC 5 : Endless redirect to the login page using the site template

c# - 即使在使用 Identity ASP.NET MVC 框架关闭浏览器后,如何让用户保持登录状态?

c# - IsPersistent 不起作用 - Cookie 仅对当前 session 有效

c# - 在 Owin Startup 上解析 InstancePerLifetimeScope 中的 Autofac 服务