#c# #.net #windows #authentication #iis
#c# #.net #Windows #проверка подлинности #iis
Вопрос:
Вот веб-конфигурация:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows" />
<authorization>
</authorization>
<identity impersonate="true" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<windowsAuthentication enabled="true" >
<providers>
<clear />
<add value="NTLM" />
</providers>
</windowsAuthentication>
<anonymousAuthentication enabled="false" />
</authentication>
</security>
</system.webServer>
В коде страницы (пытаюсь посмотреть, будет ли что-то из этого работать):
WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
string sLoginID = identity.Name.ToString();
sLoginID = sLoginID.Remove(0, sLoginID.IndexOf('\') 1);
alert.InnerText = User.Identity.Name "////// " sLoginID ;
Результаты (желаемый ДОМЕН ИМЯ ПОЛЬЗОВАТЕЛЯ):
Anonymous////// NETWORK SERVICE
Сайт расположен на сервере iis Server 6.0, все отключено, кроме олицетворения личности и проверки подлинности Windows.
Ответ №1:
Я думаю, вы получаете этого пользователя из-за параметра identity impersonate . Измените параметр на
identity impersonate=false
И проверьте, есть ли у вас учетная запись
Комментарии:
1. Привет, я сделал то, что вы сказали, но я все еще вижу: Анонимный////// СЕТЕВАЯ СЛУЖБА
2. Вы перезапустили службу IIS после внесения изменений? Попробуйте установить параметры непосредственно в конфигурации IIS, и вы создадите свой web.config после того, как получите все правильные параметры
3. Вы пытались использовать «Пользователь. Identity.Name » вместо LogonUserIdentity?
4. Все еще возвращается: анонимный////// СЕТЕВАЯ СЛУЖБА. По какой-то причине я просто не могу заставить его использовать учетные данные пользователя вместо учетных данных сервера.
Ответ №2:
Это сработало для меня: web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows" />
<identity impersonate="false" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
</configuration>
Page_Load
protected void Page_Load(object sender, EventArgs e)
{
WindowsIdentity identity = HttpContext.Current.Request.LogonUserIdentity;
string sLoginID = identity.Name.ToString();
TextBox1.Text = sLoginID;
}
Настройки IIS:
- Анонимная проверка подлинности — отключена
- ASP.NET Запечатление — Отключено
- Проверка подлинности форм — отключена
- Проверка подлинности Windows — отключена
Конечно, я использую 7.5.
Снимок экрана (выполняется в IIS, а не через VS):
Комментарии:
1. о, и после каждого изменения я на всякий случай перезапускал веб-сайт (в конце концов, это Microsoft)
![]()
2. Я скопировал все ваши настройки, и я все еще получаю тот же ошибочный результат. : (