[英]Trying to Authorize a ClaimsIdentity in .net core
我向控制器添加了一些代碼以授權所有用戶:
[Authorize]
[Route("/api/{companyIdentifier}/My")]
public class MyController : ControllerBase
{
在定制的中間件應用程序中,我添加了以下基於jwt聲明的邏輯。
var validateTokenResult =handler.ValidateToken(tokenString, parameters,out outvariable);
if (validateTokenResult.Identity != null)
{
var identity = new ClaimsIdentity(validateTokenResult.Claims)
{
Label = "Middleware Bearer Auth"
};
context.User.AddIdentity(identity);
}
我仍然收到401未經授權。 調試時,我可以看到添加身份后有2個身份。 一個沒有聲明,第二個有多個聲明,並且設置為isAuthenticated:true。 知道這里可能會發生什么。 我猜應該不應該添加第一個標識。
我在日志中發現了一些奇怪的東西:
2017-02-08 15:35:23.9356用戶的授權成功:(空)。
我沒有將標識添加到當前的httpcontext.user中,而是將用戶替換為由令牌驗證創建的新用戶:
context.User = validateTokenResult;
這為我解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.