Получить имя пользователя с помощью проверки подлинности окна

#c# #iis #model-view-controller

#c# #iis #модель-представление-контроллер

Вопрос:

Нам нужно реализовать код на C # для аутентификации в окне с помощью приложения MVC. Например, когда пользователь пытается получить доступ к URL, он / она получит всплывающее окно аутентификации, и пользователь введет свое имя пользователя и пароль, и нам нужно получить имя пользователя на C # и сохранить его в базе данных.

Я могу получить имя пользователя, используя приведенный ниже код, но это происходит только при размещении приложения на локальном хосте, как только я размещаю n сервер, я получаю идентификатор пула в качестве имени пользователя.

 System.Security.Principal.WindowsIdentity.GetCurrent().Name;
  

Как я могу получить даже после размещения приложения?

Комментарии:

1. Класс SystemInformation в системе. Windows. Пространство имен Forms может предоставить вам текущее имя пользователя, в которое вы вошли. Это то, чего вы хотите?

2. Что это за приложение? ASP.NET приложения должны использовать Page.User или Controller.User .

3. @LexLi Это приложение MVC.

Ответ №1:

Возможно, вам необходимо использовать токен личного доступа :

https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops

Ответ №2:

Если вы хотите получить имя пользователя в MVC при включении аутентификации Windows, я предлагаю вам использовать User .Идентификация.Имя вместо System.Безопасность.Принципал.WindowsIdentity.GetCurrent().Name.

Вы могли бы написать тест, как показано ниже:

     public ActionResult Index()
    {
        ViewBag.PrincipalName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        ViewBag.Name = User.Identity.Name;
        return View();
    }
  

Вид:

 <br />
The Principalname is :  @ViewBag.PrincipalName 
<br />
The name is :  @ViewBag.Name
  

Результат:

введите описание изображения здесь

Комментарии:

1. Пользователь. Идентификация. Имя, для этого я получаю имя пользователя guest вместо того, что пользователь ввел во всплывающем окне проверки подлинности окна.

2. Насколько я знаю, пользователь. Идентификация. Имя для проверки подлинности Windows — это домен и имя пользователя. Обычно клиент использует use domain / username для входа в ваше приложение. Не могли бы вы, пожалуйста, сообщить use, какое имя пользователя для гостя? Не могли бы вы, пожалуйста, поделиться подробностями настройки webconfig? Нам будет проще воспроизвести проблему и найти решение.