gpt4 book ai didi

asp.net-core - 如何创建和访问Session .net core api?

转载 作者:行者123 更新时间:2023-12-04 11:36:52 25 4
gpt4 key购买 nike

我需要在 api 中创建和访问 session 。例如,我有一个名为 Login、Profile 的 api。当当时调用登录 api 时,我需要创建 session ,并且需要访问配置文件 api 中的 session 。清除 session 后,登录名和配置文件 api 不允许用户访问。怎么做。

谢谢..

最佳答案

在 Startup.cs 中,您可以通过添加此行来添加 cookie 身份验证(您还可以指定 session 长度等选项)。

services.AddAuthentication().AddCookie();

要在登录时创建 session ,从 Controller ,您可以调用它以具有一组声明的用户身份登录(基本上是描述您需要了解的用户信息的键/值对):
await HttpContext.SignInAsync(userId, claims);

这将创建一个 ClaimsPrincipal,可以通过 Controller 上的 User 属性访问它:
User.HasClaim("someclaim", "somevalue")

最终,中间件对声明进行加密并将它们保存到 cookie 中,因此从服务器的角度来看,身份验证仍然是无状态的。请注意,它默认使用的加密 key 与机器相关联,因此您必须使用类似 azure or redis 的东西。如果您计划扩展到多个服务器实例。

如果你想拥有一个完整的登录和用户管理系统,最简单的方法可能是 ASP.net 身份,它提供了用于处理用户、策略、访问组和一些棘手的东西的 API,比如使用 Entity Framework 的密码存储。有关更多信息,请查看: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.2&tabs=visual-studio

作为旁注,对于更通用的 session 状态, this document有关于其他 session 状态选项的数据,但由于您询问了登录信息,最好的选择可能是使用身份验证 API。

关于asp.net-core - 如何创建和访问Session .net core api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54868207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com