Member 12785164 Ответов: 1

Mvc 4 автоматическое заполнение имени пользователя windows в смешанном режиме аутентификации


Я работаю в смешанном режиме аутентификации в ASP.NET MVC 4, и я хочу, чтобы имя пользователя Windows было автоматически заполнено в моем текстовом поле. Я использовал систему.Безопасность.Главный.Класса windowsidentity.GetCurrent (). Name; и он отлично работает на локальном компьютере, но когда я выполняю его на сервере, "Default AppPool" появляется в текстовом поле username.
Пожалуйста, предложите какой-нибудь подход.
заранее спасибо

Что я уже пробовал:

@модель
@{
Видовая сумка.Title = " аутентификация Active directory";
}
@{
строка UserIDwindows = System.Безопасность.Главный.Класса windowsidentity.GetCurrent (). Name;
string[] Usernameis = UserIDwindows.Расщеплять('\\');
если (ViewData["ошибка"] != ""и усилитель; & ViewData["ошибка"] != нуль)
{
строка res = ViewData ["ошибка"].Метод toString();



@РЭС


ViewData ["Error"] = null;

}
}

@использование (в формате HTML.Бигинформ("индекс", "из ActiveDirectory"))
{

ВВЕДИТЕ СВОИ УЧЕТНЫЕ ДАННЫЕ ДЛЯ ВХОДА В СЕТЬ / СИСТЕМУ


@HTML-код.LabelFor(а => у собой.ID пользователя)

@Html. TextBoxFor(a => a. UserID, new { @Value = Usernameis[1] })
@* @Html. TextBox(UserID,)*@

@Html. ValidationMessageFor(a => a. UserID)

@Html. LabelFor(a = & gt; a.Password)

@Html. TextBoxFor(a = & gt; a.Password)

@Html. ValidationMessageFor(a => a. Password)

@HTML-код.LabelFor(а => у собой.Имя_домена)

@HTML-код.TextBoxFor(а => у собой.Имя_домена)

@Html. ValidationMessageFor(a => a. DomainName)



}

F-ES Sitecore

Сайт, вероятно, не настроен на использование проверки подлинности Windows или Windows Auth не работает (например, он не будет работать через интернет).

Member 12785164

не могли бы вы немного пояснить.
мое приложение-это интранет-приложение.

1 Ответов

Рейтинг:
0

David_Wimbley

Причина, по которой вы получаете пул приложений по умолчанию, заключается в том, что System.Security.Principal.WindowsIdentity.GetCurrent().Name.

Когда вы работаете локально, я предполагаю, что вы имеете в виду из visual studio, поэтому вы видите свое имя пользователя. Ваш пользователь работает под управлением visual studio, которая запустила IE Express, и именно так вы работаете со своей страницей.

Если бы вы переместили этот сайт в полномасштабный IIS локально на своем компьютере, он, вероятно, сделал бы то же самое.

Это более чем вероятно, потому что вы включили анонимную аутентификацию в своем приложении, когда вам нужно ее отключить. Когда вы получите его на IIS, перейдите на сайт в IIS, нажмите значок аутентификации в разделе < имя сайта> Главная страница. Затем вы должны увидеть список типов аутентификации. Вы увидите, что анонимная аутентификация, вероятно, включена, а все остальное отключено. Вы захотите отключить анонимную аутентификацию и включить аутентификацию windows.

Затем, чтобы получить доступ к информации пользователя, вы должны иметь возможность использовать User.Identity.***..например User.Identity.UserName или что-то в этом роде.

Прошло уже некоторое время с тех пор, как я делал Windows auth в MVC, поэтому я думаю, что вам нужно посмотреть некоторые ссылки для получения дополнительных разъяснений.

Как использовать проверку подлинности Windows в ASP.NET 2.0[^]


Member 12785164

я не могу использовать только в аутентификации windows "включить", если я включу его и отключу все остальные, то произойдет ошибка "Доступ запрещен".И Пользователь.Идентичность.UserName возвращает null.