CurrentPrincipal.Identity.Name пусто
Я пытаюсь использовать System.Threading.Thread.CurrentPrincipal.Identity.Name
чтобы получить логин того, кто использует приложение ASP.NET. Я не получаю никаких ошибок сборки, но он возвращает пустое значение. Я использую IIS 6, и вот мои настройки аутентификации:
- Анонимная аутентификация: отключена
- Олицетворение ASP.NET: отключено
- Базовая аутентификация: включена
- Аутентификация Windows: включена
У меня нет настроек авторизации в моем Web.config
файл тоже. Вот метод, который я использую, чтобы попытаться получить логин:
public void SetUser()
{
string login = System.Threading.Thread.CurrentPrincipal.Identity.Name;
}
У меня есть точка останова, чтобы проверить значение, и он говорит login = ""
,
Как я могу получить логин?
РЕДАКТИРОВАТЬ
Вот моя картинка аутентификации:
2 ответа
Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Работал на меня. У меня была такая же проблема.
Я смог это исправить. В свойствах моего проекта я использовал IIS express, поэтому мое приложение не соответствовало моему фактическому IIS. Я снял этот флажок, создал виртуальный каталог и отключил всю аутентификацию, кроме аутентификации Windows, и теперь она работает.