Как получить атрибут пользователя из CAS Like email и прочее в .NetCore - PullRequest
0 голосов
/ 11 октября 2019

Привет! Я использую CAS для единого входа в приложение (.Net Core2.2). Мне удалось войти в систему с помощью CAS, я получаю только имя пользователя, но не электронную почту или какие-либо другие атрибуты от CAS.

Для аутентификации на стороне CAS я использую AspNetCore.Security.CAS Nuget Pacakage и настроен при запуске. Файл cs ниже содержит код.

В методе ConfigureServices при запуске:

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)

.AddCookie(options => {
    options.LoginPath = new PathString("/login");
})

.AddCAS(options =>
{
    options.CasServerUrlBase = Configuration["CasBaseUrl"];   
    options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
});

В методе Configure вашего запуска перед UseMvc:

app.UseAuthentication();

В моем контроллере

[AllowAnonymous]
[Route("login")]
public async Task Login(string returnUrl)
{
    var props = new AuthenticationProperties { RedirectUri = returnUrl };

    await HttpContext.ChallengeAsync("CAS", props);
}

В контексте я могу получить имя пользователя от context.Principal.Identity.Name, но не могу найти другую информацию об атрибутах. Пожалуйста, помогите мне в этом.

...