0

У меня есть приложение ASP.NET 5 beta 8, которое интегрируется с Azure Active Directory с помощью OpenIdConnect. Я попробовал обновить приложение до RC1 и изменил пакет openid nuget на "Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-rc1-final". Все кажется правильным, но метод OnAuthenticationComplete, который я использовал для добавления ролей в мой ClaimsIdentity, больше не находится в объекте Events, и я не могу найти альтернативы. Как я могу добавить претензии к своей Identity с новой версией?OnAuthenticationCompleted в ASP.NET 5 RC

ОБНОВЛЕНИЕ: Изменение на OnAuthenticationValidated все еще не работает для меня. Я должен делать что-то неправильно в коде моего мероприятия:

OnAuthenticationValidated = async notification => 
{ 
    var claimsIdentity = notification.AuthenticationTicket.Principal.Identity as ClaimsIdentity; 
    var userRepository=new UserRepository(Configuration); 
    var userId = claimsIdentity?.FindFirst(ClaimTypes.NameIdentifier)?.Value; 
    var user = await userRepository.FindAsync(userId); 
    if (user == null) 
    { 
     await userRepository.AddAsync(new UserDto 
     { 
      UserId = userId, 
      Username = claimsIdentity?.FindFirst(ClaimTypes.Name)?.Value, 
      DisplayName = claimsIdentity?.FindFirst(ClaimTypes.Name)?.Value 
     }); 
    } 
    claimsIdentity?.AddClaim(new Claim(ClaimTypes.Role, "super")); 
} 

Кроме того, код я использую, чтобы сделать логин:

[HttpGet] 
public IActionResult Login() 
{ 
    if (HttpContext.User == null || !HttpContext.User.Identity.IsAuthenticated) 
     return new ChallengeResult(OpenIdConnectDefaults.AuthenticationScheme, new AuthenticationProperties { RedirectUri = "/" }); 
    return RedirectToAction("Index", "Home"); 
} 

ответ

2

AuthenticationCompleted событие было переименовано в AuthenticationValidated.

Дополнительная информация об этом билете: https://github.com/aspnet/Security/pull/442.

+0

Это была моя первая мысль, но она не работает. Я должен делать что-то неправильно. Я обновлю вопрос с кодом события. –

+0

«не работает» немного расплывчато. Вызывается событие? Вы пытались включить отслеживание (на уровне подробностей), чтобы определить, что происходит внутри? – Pinpoint

+0

Событие не запускается. Я перехожу на страницу входа, но он возвращается без вызова события. Я попробовал вернуться к бета-версии 8, и это работает. При обновлении до RC1 я только изменяю имя события и удаляю 'options.DefaultToCurrentUriOnRedirect = true;' потому что свойство не существует, и оно больше не работает. –

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