问题标签 [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 回答
71 浏览

asp.net - 为什么 Page.PreviousPage 超时,是 sessionState 超时还是别的什么?

我试图弄清楚为什么下面的代码null检查失败并在一段时间后抛出异常,我还没有确定超时的原因是什么,我认为这是我收到异常消息的原因,它通常会发生第二天早上或午休后。但我仍然能够可靠地复制问题。

我的第一个猜测是sessionState超时:

但是我尝试将timeout值更改为例如 minimum number 1,但它通常不会按预期抛出异常。

否则,IIS 中的应用程序池设置:空闲超时和回收设置对我来说都很好。

IIS 应用程序池配置部分

更新:

  1. 我已经设法通过等待 30 分钟来复制该问题,然后返回并刷新页面,并将得到由 Page.PreviousPageis引起的异常null

  2. 看起来超时是由Owin使用 Cookie 身份验证的代码引起的。

  3. 看起来与 AD FS 令牌过期有关,请参阅我收集的证据的答案。

0 投票
0 回答
16 浏览

asp.net-core-3.1 - ASP.Net Core cookie 身份验证登录但未通过身份验证

我们在 ASP.Net Core webapp 中使用简单的 cookie 身份验证。登录已经工作了将近3个月。然后突然,一个问题开始出现。

这就是我在 Startup.cs 中设置身份验证的方式:

这是我实际登录的方式:

所以基本上,在用户输入正确的凭据后,我使用上面的代码登录。然后应该将它们重定向到登录用户的登录页面。这已经正常工作了 2-3 个月,但现在,由于某种原因,当他们到达登录页面时,他们会立即再次重定向到登录页面,这意味着他们实际上并没有登录。奇怪的是,我只有这个问题在一个浏览器(新 Edge)上,当我使用另一个(Chrome)尝试它时,它可以工作。所以我认为在浏览器中设置身份验证cookie的方式一定有问题,但我不确定。有什么想法吗?

0 投票
0 回答
931 浏览

asp.net - 在 ASP.NET 4.8 和 ASP.NET Core 3.1 之间共享身份验证 cookie

我按照此Microsoft 文档中描述的步骤操作,但无法使共享身份验证正常工作。

我可以看到这两个 webapps 都生成了 auth cookie,但它们最终会相互覆盖,因此 auth 仅适用于您最后登录的任何应用程序。

我已经在 IIS10 中设置了两个 webapps。4.8 应用程序是一个网站,Core 3.1 应用程序是其中的一个应用程序,因此它们都在运行并且在同一个应用程序池中。我将两个 cookie 上的路径都设置为“/”,因为核心 webapp 在 localhost/core 上运行。

这是我在 ASP.NET 4.8 Web Forms webapp 上的启动

这是 ASP.NET Core 3.1 应用程序的启动

0 投票
2 回答
2935 浏览

c# - Cookie.ExpireTimeSpan 被忽略并在 CookieAuthentication 中设置为 Session

我在尝试在我的 cookie 中设置 cookie 的过期时间时遇到问题CookieAuthentication,似乎ExpireTimeSpan只是被忽略了,当我在浏览器中获取 cookie 时,它​​的过期时间设置为Session..

我正在使用带有 .NET Core 3.1 的 c# 8.0,这是我的ConfigureService代码:

但这就是我得到它的方式

在此处输入图像描述

0 投票
0 回答
78 浏览

c# - 使用基于 cookie 的身份验证的所有设备策略的注销是什么?

也不应该依赖IdentityIdentityServer概念,最多使用一个 DB 表进行存储。搜索了一圈,找不到类似的东西。

0 投票
0 回答
103 浏览

iframe - 如何在 iFrame 上验证 .NET MVC

我在 .NET 身份验证方面没有经验,也没有找到满足此需求的具体答案。

我正在开发一个 .NET Core 2.1 MVC 应用程序,该应用程序必须在另一个 .NET Framework 4.5.1 应用程序的 iframe 上运行,该应用程序在对用户进行身份验证时使用 FormsAuthenticationTicket。我可以访问主应用程序的代码,但无法更改它。

目前的要求是自动从主应用程序的 cookie 信息中自动验证我正在开发的 iframe 应用程序。在我的应用程序上,登录使用 ASP.NET 样板 (Abp) 用户和登录名,并且数据库包含将在主应用程序数据库中使用的相同用户名(不同的数据库,相同的用户名字段)。

我目前无法解密 cookie 或找到配置 iframe 应用程序以支持此功能的方法,如果有人能引导我朝着正确的方向前进,我将不胜感激。

0 投票
1 回答
211 浏览

asp.net-core-mvc - .net core 3 中的 _signInManager.PasswordSignInAsync 方法出错

我正在使用CookieAuthenticationDefaults.AuthenticationScheme

当我尝试使用 signInManager.PasswordSignInAsync方法时,我收到此错误===>

cookie.Expiration 被忽略,使用 ExpireTimeSpan 代替。

如何解决此错误?

0 投票
1 回答
640 浏览

asp.net-mvc - 如果用户从 IdentityServer4 中的另一个浏览器/设备登录,如何检测并从应用程序中注销用户?

我已经在我的应用程序中实现了 IdentityServer4 SSO。SSO 工作正常以及所有客户端的注销,但是有一个新要求,如果用户已经登录到应用程序并且如果他尝试再次登录(从不同的设备/浏览器),那么他应该自动注销以前的浏览器。我对此一无所知。如何实现这一点以及是否可以跟踪用户登录会话?

更新:-

我们尝试了以下方法,我们使用“操作”过滤器属性将会话信息添加到全局静态变量中。这里我们在用户登录后存储了登录会话信息。

在“操作过滤器”方法中,我们检查用户的会话 ID 是否已经存在。如果会话存在并且它的 SessionId 与声明会话 id 不匹配,那么我们检查会话的登录时间。如果登录时间小于当前登录时间,则用户退出系统,否则我们使用最新的会话 ID 和登录时间更新登录会话。由于第二次登录的这个工作流程,登录会话将被更新,因为登录时间总是大于保存的登录会话信息。对于旧的登录会话,用户将退出系统,因为登录时间总是小于更新的会话信息。

这适用于我们为少数用户进行的测试,但该解决方案是否适用于有数千名用户登录系统的实际场景?全局使用静态变量存储会话信息是个好主意吗?使用这个有什么潜在的缺点。请建议。我们也对新想法持开放态度,如果有任何实现此功能的新方法,请告诉我们。

谢谢!!!

0 投票
1 回答
213 浏览

c# - 在 cookie 中存储 JWT 令牌后,如何在 ASP.NET Core 3.1 中破坏该 cookie 并获取信息

在我的 ASP.NET Core 3.1 MVC 应用程序中,我想将 JWT 令牌存储在 cookie 中,然后在授权期间我想中断获取用户信息。这是我如何将 JWT 令牌存储在 cookie 中的代码。

0 投票
1 回答
502 浏览

c# - ASP.NET 框架 4.8 cookie 身份验证提供程序不会触发 onValidateIdentity

我正在使用 ASP.NET 框架 CookieAuthenticationProvider 生成具有 AspNet.Identity.Core 版本 2.2.2 的身份。

当我从前端查看 cookie 时,它​​似乎是正确生成的(CookieName、CookieDomain 都符合预期)。

但是,我希望每 X 秒刷新一次 cookie。在 Microsoft 文档中,它声明我可以为此使用 CookieAuthenticationProvider 对象上的 OnValidateIdentity 属性,但是,regenerationIdentityCallback 似乎永远不会被触发。

值得一提的是,我们在 UserManager<TUser, TKey> 中使用 int 变量作为 TKey 而不是 GUID(据我所知,这是标准)

当前代码如下所示:

为什么 ValidateInterval 不每 30 秒重新生成一次身份?我还应该如何让它按我想要的方式工作?