问题标签 [cookie-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
244 浏览

c# - IE11 Cookie 身份验证问题 - 多个站点,同一个域

设置场景
我正在经历一个非常独特的场景,ASPNet.SharedCookie在代理下我的 IE11 似乎正在消失或改变。我会设置场景:

我们有 2 个网站托管在不同的服务器上,我们称之为:

  1. https://login.mydomain.com
  2. https://product.mydomain.com

第一个站点处理身份验证,它检查凭据并为域设置 cookie .mydomain.com。这在 99% 的场景中都非常有效(我们拥有庞大的用户群)。

问题
我们有 1 个使用 Citrix 的用户,因此他们通过代理访问产品,并且无法控制浏览器版本。他们必须使用 IE11。

所以他们访问 login.mydomain.com,输入他们的凭据,cookie 被验证和设置,然后他们被重定向到 product.mydomain.com。但是,当他们访问该站点时,cookie 似乎不存在或似乎已被更改(我无法确切找到,因为他们无权查看他们机器上的 cookie),从我们的日志中我知道我们得到以下信息:

有谁之前经历过这个吗?就像我说的那样,它适用于大众,但对于这种独特的场景,我们遇到了困难。

登录站点的详细
启动:

我也在service.AddDataProtection打电话.PersistKeysToFileSystem

让我知道是否应该为产品添加启动代码,不确定它是否有任何区别,因为我假设 cookie 的问题发生在重定向上。

谢谢你的帮助!

0 投票
3 回答
5864 浏览

openid-connect - OpenID 连接中的 cookie 范围

在使用 OpenID Connect 对 Azure AD B2C 进行身份验证期间,cookie 的作用是什么?有必要使用cookie吗?OpenID Connect 管道中是否隐式使用了 cookie?是否有任何文档符合 OpenID Connect 中 cookie 的角色?

0 投票
1 回答
426 浏览

redirect - 设置 CookieAuthentication 重定向路径

我只希望具有 LocationId 的用户能够访问我的控制器方法。在位置索引页面上,用户输入他们的 ID,该 ID 保存在 cookie 中。

如果用户试图访问没有的页面,则应将用户重定向到位置索引页面。这几乎可以工作,但我的重定向有问题。

我正在使用 asp net core 2.0。

我的控制器看起来像这样

在启动时的 configureServices() 中,我有:

当我访问未经授权的页面时,我被重定向到http://本地主机:54104/Location/Index?=%2FLocation%2FIndex%3F%3D%252FLocation%252FIndex%253F%253D%25252FLocation%25252FIndex%25253F%25253D%2525252FLocation%2525252FIndex%2525253F%2525253D%252525252FLocation%252525252FIndex%252525253F%252525253D%25252525252FLocation% 25252525252FIndex%25252525253F%25252525253D%2525252525252FLocation%2525252525252FIndex%2525252525253F%2525252525253D%252525252525252FLocation%252525252525252FIndex%252525252525253F%252525252525253D%25252525252525252FLocation%25252525252525252FIndex%25252525252525253F%25252525252525253D%2525252525252525252FLocation%2525252525252525252FIndex%2525252525252525253F%2525252525252525253D%252525252525252525252FLocation%252525252525252525252FIndex%252525252525252525253F%252525252525252525253D%25252525252525252525252FLocation%25252525252525252525252FIndex% 25252525252525252525253F%25252525252525252525253D%2525252525252525252525252FLocation%2525252525252525252525252FIndex%2525252525252525252525253F%2525252525252525252525253D%252525252525252525252525252FLocation%252525252525252525252525252FIndex%252525252525252525252525253F%252525252525252525252525253D%25252525252525252525252525252FLocation%25252525252525252525252525252FIndex%25252525252525252525252525253F%25252525252525252525252525253D%2525252525252525252525252525252FLocation%2525252525252525252525252525252FIndex%2525252525252525252525252525253F%2525252525252525252525252525253D%252525252525252525252525252525252FLocation%252525252525252525252525252525252FIndex%252525252525252525252525252525253F%252525252525252525252525252525253D%25252525252525252525252525252525252FLocation%25252525252525252525252525252525252FIndex%25252525252525252525252525252525253F%25252525252525252525252525252525253D%2525252525252525252525252525252525252FLocation%2525252525252525252525252525252525252FIndex%2525252525252525252525252525252525253F%2525252525252525252525252525252525253D%252525252525252525252525252525252525252FLocation%252525252525252525252525252525252525252FIndex%252525252525252525252525252525252525253F%252525252525252525252525252525252525253D%25252525252525252525252525252525252525252FLocation%25252525252525252525252525252525252525252FIndex

女巫导致 HTTP 错误 404.15 - 未找到 请求过滤模块配置为拒绝查询字符串过长的请求。

为什么所有这些都附加到路径中?

0 投票
0 回答
326 浏览

c# - ASP.NET MVC - 强制用户注销时显示一个消息框

我的系统有一个策略,即防止多次登录。我可以通过每次他/她登录时更新用户的安全标记来做到这一点。

以下链接是我使用的方法:
Prevent Multiple Login in ASP.NET Identity
CookieAuthenticationProvider and user session invalidation on change of SecurityStamp

问题是我不知道如何显示一个消息框以向被强制注销的用户显示。

0 投票
1 回答
4341 浏览

asp.net-core - 带有 Cookie 和 Windows 身份验证的 ASP.NET Core

我实现了支持 Cookie 的 ASP.NET Core Windows 身份验证

在 Startup.cs

登录时:

它工作正常。但是,如果暂时没有人使用该应用程序,并且当用户再次登录该应用程序时,它会引发此错误:

0 投票
1 回答
410 浏览

authentication - 我应该填写 ClaimsPrincipal 中的哪些声明以使角色授权在 .Net Core 2.0 中工作?

我有这种方法可以使用 .Net Core Cookie 身份验证登录用户。

我正在使用发布到登录视图模型的用户名填写 ClaimTypes.Name。是否有类似 ClaimTypes.Roles 的值要填写?我需要能够使用“User.IsInRole(...)”。

这当然是用户角色的集合。不只是一个角色。有谁知道如何做到这一点?

0 投票
0 回答
1842 浏览

asp.net-core-mvc-2.0 - 带有会话变量的 asp.net core 2.0 cookie 身份验证

我正在尝试实现基于 asp.net 核心 cookie 的身份验证。所以我将下面的代码添加到了我的 startup.cs

我正在使用下面的代码登录

这工作正常。但是当我将浏览器保持空闲 30 分钟时,“session_user”会话变量会过期,用户仍然会通过身份验证。我该如何解决这个问题?

还使用基于 cookie 的身份验证会降低性能吗?

谢谢

0 投票
0 回答
983 浏览

c# - 使用存储在 .Net Core 和 .Net Framework 4.x 网站的数据库中的数据保护密钥加密身份验证 Cookie

问题:对于 Asp.Net Framework 4.x 和 Asp.Net Core 2 网站,如何使用存储在数据库中而不是文件系统或文件共享中的数据保护密钥来加密身份验证 cookie?

背景:我有一个 .Net Framework 4.x 网站和一个 .Net Core 2.0 网站。我需要在这两个应用程序之间共享身份验证 cookie 并使用 DataProtection 密钥加密数据。
在生产中,这些应用程序托管在多个 Web 服务器上。所以,我还需要在服务器之间共享密钥,因此也需要在数据库之间共享。目前,数据保护密钥在每台服务器上的文件系统位置之间手动同步。我想为每个 Web 服务器可以使用的数据保护密钥提供一个公共位置。显而易见的解决方案是文件共享,但这会给架构带来单点故障。
我宁愿使用支持这两个应用程序的通用数据库。我知道数据库本身就是一个 SPoF,但它已经是并且永远都是。
将其用于此目的不会增加风险。

我知道我可以创建自己的 IXmlRepository 实现来获取数据保护密钥并将其保存到我的数据库中。
我已经这样做了,而且效果很好。在调试期间,我可以看到应用程序在我的数据库中获取和设置数据保护密钥。

我在 StartUp.cs 中使用它,其中 DataProtectionRepository 是我对数据库的实现:

问题是当我设置 CookieAuthenticationOptions 时,TicketDataFormat 属性需要 IDataProtector 的实现来构造。IDataProtector 由 DataProtectionProvider.CreateProtector 提供,但要创建数据保护提供程序,需要 DirectoryInfo 对象来指示要存储密钥的位置。

我想我可以创建自己的 IDataProtectionProvider 和 IDataProtector 实现,但这似乎很麻烦而且很危险,因为 IDataProtector 处理数据有效负载的实际保护和取消保护,但没有公开如何检索密钥或从何处获取密钥的任何细节. 另外,我真的不想更改任何实际的保护/取消保护功能。我只想从我的存储库中检索密钥。

我很难相信我在这个问题上是独一无二的。我完全走错了路吗?是否有替代解决方案,或者我应该只是放入文件共享并继续前进?

谢谢。

0 投票
0 回答
14762 浏览

asp.net-identity - 如何使用 .netcore 2.0 身份和 cookie 身份验证正确设置会话超时

我正在尝试在 asp.netcore 2.0 MVC 应用程序中使用身份和 cookie 身份验证。我想将会话超时设置为 150 天,这样登录的用户就不需要在很长一段时间内再次登录。我设置options.ExpireTimeSpan = TimeSpan.FromDays(150);但会话在几分钟后关闭,即使用户正在积极使用该应用程序。

我正在关注官方文档,我的 Startup.cs 上有这个:

方法内ConfigureServices

Configure我调用的方法中app.UseAuthentication();

并进行登录,我这样做:

我是否缺少任何配置?我理论我将到期时间设置为 150 天。

提前致谢。

编辑:*看起来问题出在 ValidationInterval 上。我发现了这个问题:https ://github.com/aspnet/Identity/issues/1513

我尝试将 ValidationInterval 设置为较大的值,现在会话没有关闭,用户也没有意外注销。这是设置间隔的代码:

我想我必须看看安全标记验证器是如何工作的并正确定义验证间隔,因此不会意外关闭会话,而且不会因为过时的 cookie 而忽略用户权限的修改。

0 投票
2 回答
497 浏览

couchdb - CouchDB 无法获取非管理员用户的 cookie 身份验证会话

对于管理员用户:

但对于普通用户:

当我通过 iron-ajax 元素或简单地从 chrome 执行 XmlHttpRequest 时,也会发生同样的事情。我究竟做错了什么?

CouchDB 版本:2.1.1
配置: