C# 信号器2绑定到声明中的自定义用户ID
根据一些帖子,我决定尝试通过自定义用户id对用户进行绑定,C# 信号器2绑定到声明中的自定义用户ID,c#,authentication,signalr,asp.net-mvc-5,claims,C#,Authentication,Signalr,Asp.net Mvc 5,Claims,根据一些帖子,我决定尝试通过自定义用户id对用户进行绑定,IPrincipal.Identity.Name 因此,我实施了: public class CustomUserIdProvider : IUserIdProvider { public string GetUserId(IRequest request) { var identity = (ClaimsPrincipal)Thread.CurrentPrincipal; string i
IPrincipal.Identity.Name
因此,我实施了:
public class CustomUserIdProvider : IUserIdProvider
{
public string GetUserId(IRequest request)
{
var identity = (ClaimsPrincipal)Thread.CurrentPrincipal;
string id = identity.Claims.Where(c => c.Type == UserInfoIdClaimType)
.Select(c => c.Value).Single();
return id;
}
}
但当调用此方法时,身份中没有声明
所以我现在无法从那里收回索赔
或者我应该换一种方式?解决了这个问题,当我在web配置中注册OWIN auth时,似乎我没有正确注册OWIN auth,它成功了 我想我在某个地方读到过,信号集线器有点不属于常规的ASP.Net环境。有些东西不可用(如会话)。我想知道User/Identity是否也是其中之一……我已经调查了该请求,似乎其中包含类似cookies和会话id的内容……您应该使用IRequest.User而不是Thread.CurrentPrincipal