Я пытаюсь создать веб-приложение для развертывания в нашем интре anet. Я нахожусь на этапе, когда я хочу получить пользовательскую информацию.
Насколько мне известно, я правильно настроил аутентификацию, реализовав:
в Startup-> ConfigureServices:
services.AddRazorPages();
services.AddAuthentication(IISDefaults.AuthenticationScheme);
и в Startup-> Configure:
app.UseAuthentication();
app.UseAuthorization();
Сейчас в модели для страницы я пытаюсь получить информацию о пользователе, и я не могу пройти мимо userName и Groups.
public void OnGet()
{
var wi = (WindowsIdentity)User.Identity;
this.email = wi.Claims.FirstOrDefault(
c => c.Type == ClaimTypes.Email)?.Value;
this.claimsCount = wi.Claims.Count().ToString();
this.claims = wi.Claims.Select(x => x.Type.ToString()).ToList();
this.authenticationType= wi.AuthenticationType.ToString();
this.name = wi.Name;
if (wi.Groups != null)
foreach (var group in wi.Groups)
{
try
{
this.groups.Add(group.Translate(typeof(NTAccount)).ToString());
}
catch (Exception)
{
// ignored
}
}
}
Это то, что я получаю в своей модели после.
this.email = null
this.claimsCount = 51
this.claims = {A list composed of claims/name, claims/primarysid, claims/primarygroupsid, claims/groupsid x 48}
this.authenticationType = Negotiate
this.name = my login username
Как мне go узнать о адресе электронной почты и имени пользователя (ie: "Джон Доу" не "CA / JDOE") отсюда? Мои исследования заставляют меня поверить, что на моем локальном компьютере может не быть разрешения на получение этой информации.
Если это так, как мне go и проверить сервер развертывания, чтобы узнать, есть ли у него разрешение, необходимое для получения этой информации?