根据一些帖子,我决定尝试通过自定义用户 ID 绑定用户,而不是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;
}
}
但是当调用此方法时,身份中没有任何声明...
所以我现在无法从那里检索索赔?
或者也许我应该做不同的事情?