У меня есть приложение 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");
}
Это была моя первая мысль, но она не работает. Я должен делать что-то неправильно. Я обновлю вопрос с кодом события. –
«не работает» немного расплывчато. Вызывается событие? Вы пытались включить отслеживание (на уровне подробностей), чтобы определить, что происходит внутри? – Pinpoint
Событие не запускается. Я перехожу на страницу входа, но он возвращается без вызова события. Я попробовал вернуться к бета-версии 8, и это работает. При обновлении до RC1 я только изменяю имя события и удаляю 'options.DefaultToCurrentUriOnRedirect = true;' потому что свойство не существует, и оно больше не работает. –