2017-02-08 15 views
0

я добавил код для моего контроллера для того, чтобы разрешить всем пользователям:Пытаясь Авторизуйте ClaimsIdentity в ядре .net

[Authorize] 
[Route("/api/{companyIdentifier}/My")] 
public class MyController : ControllerBase 
{ 

In-приложение пользовательских промежуточного слоя я добавил следующую логику, которая строит от претензии 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-02-08 15: 35: 23,9356 Authorization был успешным для пользователя: (нуль).

Вместо добавления идентичности к текущему HttpContext.User я просто заменил пользователя с новым, который был создан с помощью проверки маркера:

context.User = validateTokenResult;

Это решало проблему для меня ,

+0

и? сделал эту работу –

+0

Это сработало. Я настрою свой предыдущий комментарий. –

 Смежные вопросы

  • Нет связанных вопросов^_^