gpt4 book ai didi

c# - 为什么 SignalR Context.User.Identity.Name 是空的?

转载 作者:行者123 更新时间:2023-12-05 03:07:09 29 4
gpt4 key购买 nike

This question帮我修复了一个空的 Context.User 值,但在修复之后,Context.User.Identity.Name 是空的。

这是我在 Context.User.Identity 的即时窗口中看到的:

{System.Security.Principal.WindowsIdentity}
AccessToken: {Microsoft.Win32.SafeHandles.SafeAccessTokenHandle}
Actor: null
AuthenticationType: ""
BootstrapContext: null
Claims: {System.Security.Principal.WindowsIdentity.<get_Claims>d__95}
CustomSerializationData: null
DeviceClaims: Count = 0
Groups: null
ImpersonationLevel: Anonymous
IsAnonymous: true
IsAuthenticated: false
IsGuest: false
IsSystem: false
Label: null
Name: ""
NameClaimType: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
Owner: null
RoleClaimType: "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid"
Token: {0}
User: null
UserClaims: Count = 0

我怀疑 IsAuthenticated: false 与此有关,但我的身份验证是在 SalesForce 包装器中处理的,而不是通过典型的 FormsAuthentication.SetAuthCookie() code - 我搜索了我的 repo,我们没有在任何地方使用 SetAuthCookie。根据我在本地主机网页中看到的内容,我已成功通过身份验证。

必须执行哪些操作才能填充/获取身份 名称 的访问权限?

最佳答案

我认为您对 IsAuthenticated 属性的怀疑是正确的。如果您在没有任何类型的 token (OAuth/JWT)、cookie、Windows 身份验证等的情况下调用您的中心(或 Web API),则不会填充声明/身份信息。 Here's SignalR hub 身份验证/授权概述。我在 Signalr 集线器上成功使用了授权过滤器(包含在 Microsoft.AspNet.SignalR 中的过滤器)以及在调用中传递的 Bearer token :

 var connection = new HubConnection("http://localhost:50042/signalr");
connection.Headers.Add("Authorization", "Bearer " + token);

授权过滤器很早就在网络 API 管道中被调用。 token 将被解密,线程原则/身份将被设置。然而,这个 token 是由我的 web api 发出的,所以它能够被解析。

我没有任何 Salesforce 经验,但听起来您的应用程序设置与我最近所做的有点不同。我假设您的应用程序正在针对 SalesForce API 进行身份验证。然后必须使用从 Salesforce 返回的 token 来验证/授权对 Salesforce API 的后续调用的调用。但是,您无法解密/解析该 token 以提取声明(希望如此。否则那不好)。

您是否尝试过将 JWT 与 Salesforce 结合使用(请参阅 here)?或者使用 Web API,利用外部身份验证(例如 here )?您可能可以在您的客户端和我假设托管信号器集线器的 .NET Web Api 之间来回传递 JWT,并使用自定义授权过滤器来解析 JWT token 以授权对集线器的调用/设置身份(请参阅 this stackoverflow 帖子作为开始)。

希望这能让您有所收获。

关于c# - 为什么 SignalR Context.User.Identity.Name 是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48288957/

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