提问人:Gabby 提问时间:10/25/2023 最后编辑:marc_sGabby 更新时间:10/25/2023 访问量:23
通过 Kestrel 启动 ASP.NET Core 时,User.Identity.Name 返回的名称服务器,而不是连接的用户
When launching ASP.NET Core via Kestrel, User.Identity.Name returned name server, not connected user
问:
连接到 Kestrel 时,我需要获取的不是运行应用程序的服务器的名称,而是连接到应用程序的用户的名称。
我做错了什么?
我使用 Kestrel,而不是 IIS;在 Windows 服务器上运行。.exe
当尝试通过 识别用户时,我得到的是服务器名称,而不是访问服务器的用户的名称(返回相同的结果)System.Security.Principal.WindowsIdentity.GetCurrent().Name
HttpContext.Current.User.Identity.Name
我使用cookie身份验证,但只是为了获取连接用户的名称,因为使用了Windows用户的域名,这已经排除了未经授权的访问
身份验证在具有 Windows 身份验证的 IIS 上有效(我获取用户名),但身份验证在具有 Cookie 的 Kestrel 上不起作用
工作原理:
- 我得到用户名
- 我从数据库到各种服务获取用户角色
- 我把用户名和它的角色写在
ClaimsIdentity
- 我使用角色来访问各种控制器
答: 暂无答案
评论