Я пытаюсь использовать System.Threading.Thread.CurrentPrincipal.Identity.Name, чтобы получить логин того, кто использует приложение ASP.NET. Я не получаю ошибок сборки, но возвращает пустое значение. Я использую IIS 6 и вот мои параметры проверки подлинности:CurrentPrincipal.Identity.Name is blank
Anonymous Authentication: Отключено
ASP.NET олицетворения: Инвалид
Basic Authentication: Enabled
Проверка подлинности Windows: Enabled
У меня нет настроек авторизации в моем файле webconfig. Вот метод, который я использую, чтобы попытаться получить логин.
public void SetUser()
{
string login = System.Threading.Thread.CurrentPrincipal.Identity.Name;
}
У меня есть точки останова, чтобы проверить значение и говорит логин = «»
Как я могу получить логин?
EDIT
Вот моя картина аутентификации:
Можете ли вы уточнить, что происходит в терминах set/get/void? Вы называете его «SetUser», но он извлекает значение и ничего не делает с ним. Как насчет машины, на которой это работает? Является ли это обычным сервером Windows или виртуальной машиной или облаком и т. Д.? Вы пытались запустить простую программу только с этой машины? Я спрашиваю, потому что это работает для меня, поэтому я пытаюсь выяснить, что для вас другое. – radumanolescu
«Текущий директор» настраивается. Возможно ли, что какая-то другая часть программы установила его в пустое значение? См. Http://msdn.microsoft.com/en-us/library/system.threading.thread.currentprincipal(v=vs.110).aspx – radumanolescu
SetUser() будет извлекать значение для входа. Я буду использовать логин, чтобы извлекать записи из базы данных, чтобы узнать, разрешены ли они. У меня нет логики для этого, я просто пытаюсь получить значение в первую очередь. Я запускаю это на обычной ОС Windows 7 локально. – user3062114