问题标签 [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.
asp.net - 为什么 Page.PreviousPage 超时,是 sessionState 超时还是别的什么?
我试图弄清楚为什么下面的代码null
检查失败并在一段时间后抛出异常,我还没有确定超时的原因是什么,我认为这是我收到异常消息的原因,它通常会发生第二天早上或午休后。但我仍然能够可靠地复制问题。
我的第一个猜测是sessionState
超时:
但是我尝试将timeout
值更改为例如 minimum number 1
,但它通常不会按预期抛出异常。
否则,IIS 中的应用程序池设置:空闲超时和回收设置对我来说都很好。
更新:
我已经设法通过等待 30 分钟来复制该问题,然后返回并刷新页面,并将得到由
Page.PreviousPage
is引起的异常null
。看起来超时是由
Owin
使用 Cookie 身份验证的代码引起的。看起来与 AD FS 令牌过期有关,请参阅我收集的证据的答案。
asp.net-core-3.1 - ASP.Net Core cookie 身份验证登录但未通过身份验证
我们在 ASP.Net Core webapp 中使用简单的 cookie 身份验证。登录已经工作了将近3个月。然后突然,一个问题开始出现。
这就是我在 Startup.cs 中设置身份验证的方式:
这是我实际登录的方式:
所以基本上,在用户输入正确的凭据后,我使用上面的代码登录。然后应该将它们重定向到登录用户的登录页面。这已经正常工作了 2-3 个月,但现在,由于某种原因,当他们到达登录页面时,他们会立即再次重定向到登录页面,这意味着他们实际上并没有登录。奇怪的是,我只有这个问题在一个浏览器(新 Edge)上,当我使用另一个(Chrome)尝试它时,它可以工作。所以我认为在浏览器中设置身份验证cookie的方式一定有问题,但我不确定。有什么想法吗?
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 应用程序的启动
c# - 使用基于 cookie 的身份验证的所有设备策略的注销是什么?
也不应该依赖Identity
或IdentityServer
概念,最多使用一个 DB 表进行存储。搜索了一圈,找不到类似的东西。
iframe - 如何在 iFrame 上验证 .NET MVC
我在 .NET 身份验证方面没有经验,也没有找到满足此需求的具体答案。
我正在开发一个 .NET Core 2.1 MVC 应用程序,该应用程序必须在另一个 .NET Framework 4.5.1 应用程序的 iframe 上运行,该应用程序在对用户进行身份验证时使用 FormsAuthenticationTicket。我可以访问主应用程序的代码,但无法更改它。
目前的要求是自动从主应用程序的 cookie 信息中自动验证我正在开发的 iframe 应用程序。在我的应用程序上,登录使用 ASP.NET 样板 (Abp) 用户和登录名,并且数据库包含将在主应用程序数据库中使用的相同用户名(不同的数据库,相同的用户名字段)。
我目前无法解密 cookie 或找到配置 iframe 应用程序以支持此功能的方法,如果有人能引导我朝着正确的方向前进,我将不胜感激。
asp.net-core-mvc - .net core 3 中的 _signInManager.PasswordSignInAsync 方法出错
我正在使用CookieAuthenticationDefaults.AuthenticationScheme。
当我尝试使用 signInManager.PasswordSignInAsync方法时,我收到此错误===>
cookie.Expiration 被忽略,使用 ExpireTimeSpan 代替。
如何解决此错误?
asp.net-mvc - 如果用户从 IdentityServer4 中的另一个浏览器/设备登录,如何检测并从应用程序中注销用户?
我已经在我的应用程序中实现了 IdentityServer4 SSO。SSO 工作正常以及所有客户端的注销,但是有一个新要求,如果用户已经登录到应用程序并且如果他尝试再次登录(从不同的设备/浏览器),那么他应该自动注销以前的浏览器。我对此一无所知。如何实现这一点以及是否可以跟踪用户登录会话?
更新:-
我们尝试了以下方法,我们使用“操作”过滤器属性将会话信息添加到全局静态变量中。这里我们在用户登录后存储了登录会话信息。
在“操作过滤器”方法中,我们检查用户的会话 ID 是否已经存在。如果会话存在并且它的 SessionId 与声明会话 id 不匹配,那么我们检查会话的登录时间。如果登录时间小于当前登录时间,则用户退出系统,否则我们使用最新的会话 ID 和登录时间更新登录会话。由于第二次登录的这个工作流程,登录会话将被更新,因为登录时间总是大于保存的登录会话信息。对于旧的登录会话,用户将退出系统,因为登录时间总是小于更新的会话信息。
这适用于我们为少数用户进行的测试,但该解决方案是否适用于有数千名用户登录系统的实际场景?全局使用静态变量存储会话信息是个好主意吗?使用这个有什么潜在的缺点。请建议。我们也对新想法持开放态度,如果有任何实现此功能的新方法,请告诉我们。
谢谢!!!
c# - 在 cookie 中存储 JWT 令牌后,如何在 ASP.NET Core 3.1 中破坏该 cookie 并获取信息
在我的 ASP.NET Core 3.1 MVC 应用程序中,我想将 JWT 令牌存储在 cookie 中,然后在授权期间我想中断获取用户信息。这是我如何将 JWT 令牌存储在 cookie 中的代码。
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 秒重新生成一次身份?我还应该如何让它按我想要的方式工作?