问题标签 [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 投票
0 回答
39 浏览

authorization - 即使对于 [AllowAnonymous] 操作,如何强制在 AuthenticatedUsers 上调用 ValidatePrincipal?

我在一个新的 ASP.NET CORE 3.1 项目上使用 cookie 身份验证。

我有一个供来宾和经过身份验证的用户使用的控制器操作。因此,它用AllowAnonymous属性装饰。

如果用户通过了身份验证,则操作的行为会略有不同,因此我使用它httpContext.User.Identity.IsAuthenticated来检查它,如果为真,然后我检索主体的声明以执行数据库更新。

我遇到的问题是,由于操作允许是匿名的,因此OnValidatePrincipal不会调用 cookie 身份验证方案的事件来确保当前声明是最新的。

这意味着即使httpContext.User.Identity.IsAuthenticated标志为真,我也不能依赖它附带的声明,因为在这种情况下它们没有得到验证。

首先,这在我看来是个问题。其次,有谁知道是否有办法解决这个问题?无论动作是否需要授权OnValidatePrincipal,一旦标志为真,有一些方法可以强制调用事件?httpContext.User.Identity.IsAuthenticated

0 投票
1 回答
57 浏览

asp.net-mvc - 使用登录身份验证的 ASP.NET MVC 授权不起作用

我正在尝试在我的 ASP.NET MVC 项目中实现 cookie 身份验证,并且我已经根据我的研究编写了所有代码。

我真的不知道怎么了。我怀疑我的项目的文件夹层次结构已关闭,但不可能。但可能是剃须刀页面没有映射或创建[Authorize]属性。我不知道

登录后正确创建了 cookie,但如果我放置任何没有 cookie 的 URL,则页面加载未经授权

我对这个项目的意图是有一个带有一些菜单的开放主页和一个用于数据管理的隐藏管理面板。如果还有其他关于如何保护管理页面的建议,我会全力以赴。

我的项目中没有角色。

这是我的代码。

启动.cs

这是我的具有授权属性的控制器:

我认为我的登录身份验证是正确的,但我会把它放在这里 - LoginController

这是文件夹层次结构

这是文件夹层次结构

0 投票
0 回答
16 浏览

python - 如何使用 cookie 访问 Google Messages?

我正在尝试通过 python 访问谷歌消息,我使用selenium-chrome-driver这个项目从通常的 chrome 我们可以 QR 码授权一次并将其保存到浏览器但是..在我的项目中每次我运行我的 selenium它必须扫描二维码。

我尝试使用 cookie 访问硒,但它不起作用。需要帮助TT

在此处输入图像描述

0 投票
1 回答
44 浏览

.net-core - .NET Core 共享 Cookie

我有带有 .NET Core Identity 的 .NET Core 应用程序。我已将共享 cookie 设置为Startup.cs

此外,我还有第二个 .NET Core 应用程序,我根本没有身份验证,但只想使用该 SharedCookie,我在以下内容中执行了以下操作Startup.cs

并在控制器操作上设置属性[Authorize]

我登录到第一个应用程序并转到第二个应用程序并看到错误/Account/Login...页面不存在。

是的,我没有那个页面,但为什么我会看到这个问题?我是否忘记在代码中添加任何内容?还有一个问题:什么是 SharedCookie 字符串?它是随机字符串还是编码了一些用户数据?我可以从 SharedCookie 中提取任何信息,例如用户 ID 吗?

0 投票
0 回答
59 浏览

asp.net-core - 如何在 asp.net core 中手动生成身份验证 cookie?

我想在服务器端手动生成身份验证 cookie 字符串,当您设置 cookie 身份验证中间件并使用 SignInAsync(此 HttpContext 上下文,字符串?方案,ClaimsPrincipal 主体)登录用户时,由 ASP .NET 核心生成. 我正在使用 REST 客户端调用 API 服务器。API 使用 cookie 身份验证。有一个用例,一旦我收到来自 IDP 的 SAML 响应,我需要对 API 进行初始调用以获取用户详细信息。为此,我需要在请求中设置 cookie。

我在 Startup.cs 文件中使用带有 cookie 身份验证设置的 ASP .NET Core 5。它是典型的 cookie 认证中间件。

下面是我正在尝试做的示例代码:

0 投票
1 回答
74 浏览

blazor - 具有 cookie 身份验证的 Blazor 服务器应用程序 - 角色不起作用

我有一个 Blazor 服务器应用程序,我实现了 cookie 身份验证,如下所示:https ://www.pragimtech.com/blog/blazor/asp.net-core-identity-setup-in-blazor-application/

我可以使用<AuthorizeView>和成功保护我的页面@attribute [Authorize]。但是,当我使用例如:@attribute [Authorize (Roles = "Installer"]它一直告诉我“未授权”时,我无法让我的角色发挥作用。

用户和角色存在于数据库中(它适用于具有个人用户身份验证的 Blazor WASM 项目)所以我认为这不是问题。

有没有人遇到过这个问题?

0 投票
0 回答
17 浏览

asp.net-mvc - 如何解决 Cookie 身份验证错误 HTTP ERROR 405?

我有这个 Cookie 身份验证控制器,我想在用户单击“映射”选项卡和“配置”选项卡时创建一个身份验证。最初我使用的是 [HttpPost] 方法,但出现 HTTP405 错误。因此,我将 [HttpPost] 切换为 [HttpGet] 并得到了我想要的结果。这是一个图像。 在此处输入图像描述

输入正确的密码和用户名后,我收到另一个 HTTP405 错误。

这是我的配置 HTML 代码:

在此处输入图像描述

0 投票
1 回答
21 浏览

asp.net-mvc - 如何正确使用 RedirectToAction()

}

我的标签(映射和配置)有这个 Cookie 身份验证控制器。一旦用户输入了正确的密码和用户名,我正在使用 RedirectToAction() 方法将我的返回视图重定向到访问映射和配置选项卡。我的问题是,输入密码和用户名后,什么也没有发生。我使用了错误的方法吗?

这是我的startup.cs

在此处输入图像描述

0 投票
0 回答
27 浏览

c# - 未完成角色时未调用 RedirectToLogin 处理程序(cookie 身份验证)

我有一个 ASP.NET Core (.NET 6) API 控制器,它确保只有经过身份验证的用户才能使用以下Authorize属性访问其端点:

由于它提供 REST API,而不是返回 302 重定向响应,我更喜欢 401 未经身份验证的响应,因此我在以下位置配置了我的 cookie 身份验证Startup

和:

按预期工作。我在未经身份验证的请求上得到 401 而不是 302。

当我引入基于角色的访问控制并将上面的内容更改为例如时不起作用的是。[Authorize][Authorize(Roles = "Borrower")]

向具有经过身份验证但不再假定该角色的主体的控制器的请求导致 302 而不是 401。在RedirectToLogin方法中设置断点表明在这种情况下没有调用该方法(即没有引发事件)。

此外,我没有看到任何其他适合这种情况的事件。

这是设计使然还是错误?我在这里错过了什么吗?我怎么还能把那个 302 变成 401。

0 投票
0 回答
28 浏览

asp.net-core - Asp.NET Core Cookie 身份验证标识符

我使用 OpenIdConnect 对 Web API 核心应用程序使用 Cookie 身份验证。

到目前为止,我将 JWT 令牌存储在 cookie 中,并使用自定义缓存来保存类似会话的数据(在缓存中,令牌是关键)

现在我只想将令牌保留在服务器端,将其从身份验证 cookie 中删除。

我想知道 Authentication Cookie 是否带有唯一标识符,我可以将其用作缓存中的键?我还没有在类中找到这样的属性......需要像会话 Cookie 中的 sessionId 这样的东西,我可以在每次提供 cookie 时检索它。

谢谢