2017-02-08 22 views
0

我添加一些代碼到我的控制器來爲它授權所有的用戶:試圖在授權.NET芯ClaimsIdentity

[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。任何想法可能會發生在這裏。我猜測第一個身份不應該被添加。

回答

1

我注意到我的日誌一些奇怪的事情:

2017年2月8日15:35:23.9356授權成功的用戶: (空)。

,而不是添加身份目前HttpContext.User中的我剛剛更換與由令牌驗證創建一個新的用戶:

context.User = validateTokenResult;

這解決了這個問題對我來說。

+0

和?做了這項工作 –

+0

這工作。我會調整我以前的評論。 –