簡體   English   中英

嘗試在.net核心中授權ClaimsIdentity

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM