ASP.NET и IIS выдают себя за работу [дубликат]

Вы можете использовать это:

  myDropDown.Items.Remove (myDropDown.Items.FindByValue («TextToFind»));   
94
задан Casey 24 March 2011 в 04:05
поделиться

21 ответ

Если ваш URL-адрес имеет точки в доменном имени, IE будет обрабатывать его так, как будто это интернет-адрес, а не локальный. У вас есть как минимум два варианта:

  1. Получите псевдоним, который будет использоваться в URL-адресе для замены server.domain. Например, myapp.
  2. Выполните следующие действия на вашем компьютере.

Перейдите на сайт и отмените диалог входа в систему. Пусть это произойдет:

В настройках IE:

4
ответ дан Bob Horn 17 August 2018 в 09:00
поделиться
  • 1
    Мы используем Windows Server 2012, и это единственное решение, которое сработало для нас. Большое спасибо! – ashilon 4 January 2017 в 13:53

Вы пробовали войти в систему с префиксом домена, например. Домен \ Имя пользователя? IIS 6 по умолчанию использует хост-компьютер как домен по умолчанию, поэтому определение домена при входе в систему может решить проблему.

1
ответ дан chalemic 17 August 2018 в 09:00
поделиться

Проверка подлинности Windows в IIS7.0 или IIS7.5 не работает с kerberos (provider = Negotiate), когда идентификатор пула приложений является ApplicationPoolIdentity. Необходимо использовать Network Service или другую учетную запись. Другая возможность - использовать NTLM для работы Windows Authenticatio (в Windows Authentication, Providers, поставить NTLM сверху или удалить переговоры)

chris van de vijver

0
ответ дан Chris van de vijver 17 August 2018 в 09:00
поделиться
  • 1
    Неправильно. Перезагрузите свой сервер. Обратите внимание, что это работает сейчас. Применить исправление KB2545850. – Amit Naidu 22 March 2014 в 07:44
  • 2
    Вау. Перезагрузите его только для меня. Необходимо проверить, как долго. Есть идеи? Пока не исследовал исправление. – Michael Lemke 28 April 2014 в 17:26
  • 3
    у нас был абсолютно тот же случай. Negotiate не работал с ApplicationPoolIdentity до перезагрузки. – SergeyT 29 April 2015 в 17:25

Может быть связано с браузером. Если вы используете IE, вы можете перейти в «Дополнительные параметры» и установить флажок «Включить встроенную проверку подлинности Windows».

4
ответ дан Dante 17 August 2018 в 09:00
поделиться

У меня была аналогичная проблема, в которой я хотел защитить только определенную часть моего веб-сайта. Все работало хорошо, за исключением IE. У меня есть анонимная и Windows Authentication. Для анонимных пользователей Identity устанавливается на идентификатор пула приложений. Проблема была в Windows Authentication. После некоторого копания я запустил скрипача и обнаружил, что он использует Kerberos в качестве провайдера (на самом деле он настроен на Negotiate по умолчанию). Я переключил его на NTLM и исправил его. HTH

Daudi

26
ответ дан Daudi 17 August 2018 в 09:00
поделиться
  • 1
    Это сделано для меня, спасибо! Я смог забрать пользователя Windows при доступе к локально, но запрос учетных данных появится из любой другой машины в домене. – JSancho 8 April 2013 в 11:58
  • 2
    это сработало и для меня. – Chris Brickhouse 30 April 2014 в 17:22
  • 3
    @Daudi Как установить идентификатор для метода аутентификации? – Rob Bell 26 August 2014 в 15:14

Добавить разрешение [Domain Users] к вашей безопасности в Интернете.

  • Щелкните правой кнопкой мыши на своем сайте в IIS в папке «Сайты»
  • Нажмите «Редактировать разрешения» ...
  • Выберите вкладку «Безопасность»
  • В разделе «Группа» или «Пользовательские имена» нажмите кнопку «Изменить»
  • . В окне «Разрешения» под именами групп или пользователей нажмите «Добавить». ...
  • Введите [имена пользователей домена] в именах объектов, чтобы выбрать текстовую область, и нажмите «ОК», чтобы применить изменение
  • Нажмите «ОК», чтобы закрыть разрешение.
  • Нажмите «ОК», чтобы закрыть окно «Свойства» и применить новые настройки
14
ответ дан DDA 17 August 2018 в 09:00
поделиться

У меня была эта проблема на .net core 2 и после прохождения большинства предложений отсюда кажется, что мы пропустили настройку на web.config

<aspNetCore processPath="dotnet" arguments=".\app.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

Правильная настройка была forwardWindowsAuthToken = "true «это кажется очевидным сейчас, но когда есть так много ситуаций для одной и той же проблемы, сложнее определить

Edit: я также нашел полезной следующую статью Msdn , которая проходит через устранение проблемы.

0
ответ дан eugen 17 August 2018 в 09:00
поделиться

В моем случае настройки авторизации были неправильно настроены.

Мне пришлось

  1. открыть правила авторизации .NET в IIS Менеджер open the .NET Authorization Rules in IIS Manager [/g3]
  2. и удалите правило Deny remove the Deny Rule [/g4]
3
ответ дан johnecon 17 August 2018 в 09:00
поделиться

У меня есть сервер Windows 2008, над которым я работаю, поэтому мой ответ не совсем такой же, как у OP на сервере Windows 2003.

Вот что я сделал (запись этого здесь я могу найти его позже).

У меня была такая же проблема:

login prompt [/g0]

В моем файле Web.config , У меня был этот раздел:

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <allow users="*" />
        <deny users="?" />
    </authorization>
</system.web>

В IIS все они, похоже, решаются под значком «Идентификация».

  1. Изменить разрешения: убедитесь, что ваш ASP.NET У учетной записи есть разрешение.
    1. ASP.NET permission [/g1]

      Теперь перейдите к функциям аутентификации:

      Authentication Features [/g2]

      Включить анонимную аутентификацию с помощью IUSR:

      Anonymous Authentication [/g3]

      Включить проверку подлинности Windows, затем нажмите правой кнопкой мыши, чтобы установить Провайдеры.

      NTLM должен быть FIRST!

      Windows Authentication [/g4]

      Затем проверьте, что в разделе Дополнительные настройки ... Расширенная защита является Accept и Enabled. Проверка подлинности в режиме ядра проверена:

      Advanced Settings [/g5]

      Как только я это сделал, я вернулся к своему веб-приложению, нажал ссылку «Обзор», и вошел в систему без необходимости повторять мои учетные данные.

      Надеюсь, это окажется полезным для многих из вас, и я надеюсь, что это будет полезно и мне позже.

73
ответ дан jp2code 17 August 2018 в 09:00
поделиться
  • 1
    Работал для меня! Спасибо @ jp2code – Sujay Sarma 12 March 2015 в 06:46
  • 2
    хороший улов с настройками разрешений. – sotn 23 March 2016 в 14:23
  • 3
    Ваши действия полностью соответствуют моей проблеме. Любите скриншоты. – Sithu 25 May 2016 в 19:33
  • 4
    Это тоже работало для меня, но мне пришлось перезапустить свой экземпляр Windows 2008 r2 в конце. Я думаю, это может быть важно упомянуть об этом. – Aleksei Mialkin 26 September 2016 в 18:10
  • 5
    не работает для Windows Server 2012 с IIS 8.5 – Minh Nguyen 4 November 2016 в 15:58

Только для других людей. Если ошибка является 401.1 Unauthorized, а ваш код ошибки соответствует 0xc000006d, то вы фактически выполняете функцию безопасности, которая блокирует запросы к FQDN или пользовательским заголовкам хоста, которые не соответствуют вашему локальному имени компьютера:

Следуйте этой статье поддержки, чтобы устранить проблему:

http://support.microsoft.com/kb/896861

Это один взял меня некоторое время, потому что комментарии остальных не помогли мне. Я нашел эту статью и исправил ее!

30
ответ дан kamranicus 17 August 2018 в 09:00
поделиться
  • 1
    Это решило это для меня. Спасибо за ссылку! +1 – mgnoonan 18 February 2014 в 00:59
  • 2
    Вы, сэр, мой герой! Я прошел через так много «решений». чтобы добраться до этого. Спасибо! – dewd 19 August 2014 в 10:22
  • 3
    Святая корова! два дня пытался заставить эту работу работать, и, наконец, вы дали мне ответ! благодаря! – BernieSF 29 October 2015 в 18:25
  • 4
    После вспашки через несколько ответов и наблюдения, что конфигурация была идентична моей, это был ответ! – Sietse 24 November 2017 в 14:23
  • 5
    – Andy Vennells 21 August 2018 в 05:53

Я столкнулся с тем же вопросом, что и запрос, и сделал быстрый поиск, и ничто в Интернете не исправит его.

В IIS -> Предварительная настройка -> Учетные данные физического пути (пуст)

Как только я добавил идентификатор машины (домен / пользователь), который имеет доступ к VM / серверу, запрос пароля будет остановлен.

Надеюсь, что это поможет

0
ответ дан kao 17 August 2018 в 09:00
поделиться

Я просто решил аналогичную проблему с приложением ASP.Net.

Признаки: я мог войти в свое приложение с использованием локального пользователя, но не для пользователя домена, даже если машина была правильно соединена к домену (как вы говорите в своей дополнительной записке). В средстве просмотра событий безопасности произошло событие с ID = 4625 «Недопустимый sid sid».

Решение: здесь найдено решение здесь . Проблема заключалась в том, что мои тестовые машины, где клонировали виртуальные машины (Windows Server 2008 R2, один контроллер домена и один веб-сервер). Оба имеют одинаковый SID машины, что, по-видимому, вызвало проблемы. Вот что я сделал:

  1. Удалите веб-сервер из домена.
  2. Запустите c: \ Windows \ System32 \ Sysprep \ Sysprep.exe в виртуальной машине.
  3. Перезагрузите виртуальную машину.
  4. Присоедините веб-сервер к домену.

Вы потеряете некоторые настройки в процессе (пользовательские настройки, статический IP, воссоздайте самозаверяющий сертификат), но теперь, когда я их воссоздал, все работает правильно.

2
ответ дан Matthieu 17 August 2018 в 09:00
поделиться
  • 1
    Клонирование отстой, когда вы пытаетесь настроить ограниченное делегирование. – SideFX 29 January 2013 в 23:44

Это исправило это для меня.

Мой сервер и клиентский ПК - это Windows 7 и находятся в одном домене

  1. в iis7.5 - включить проверку подлинности Windows для вашего Интранет (отключить всю другую аутентификацию .. также не нужно упоминать проверку подлинности Windows в файле web.config
  2. , затем перейти на клиентский компьютер .. IE8 или 9-Tools-internet Options-Security-Local Intranet-Sites- advanced-Добавьте свой сайт (снимите флажок «require server verfi ...» ticketno.no need
  3. IE8 или 9-Tools-internet Options-Security-Local Intranet-Custom level-userauthentication-logon- выберите автоматический вход в систему с текущим именем пользователя и паролем
  4. сохраните эти настройки .. все готово .. Больше не запрашивается имя пользователя и пароль.
  5. Убедитесь, что ваш клиентский ПК является частью домена, у вас должен быть объект групповой политики для этих настроек. .. orelse этот параметр вернется обратно, когда пользователь будет входить в Windows в следующий раз
5
ответ дан Michael Eakins 17 August 2018 в 09:00
поделиться
  • 1
    Для 1) я фактически включил олицетворение и проверку подлинности Windows, и все было в порядке. Ключ для меня был 2), когда вы добавляете адрес удаленного сайта в локальную зону интрасети. – SideFX 29 January 2013 в 23:43

Я пробовал описанные выше трюки конфигурации IIS и взлома реестра loopback, и я просмотрел и воссоздал разрешения пула приложений и еще дюжину других вещей и до сих пор не смог избавиться от цикла проверки подлинности на моей рабочей станции разработки с помощью IIS Express или IIS 7.5, с локального или удаленного сеанса просмотра. Я получил четыре ответа статуса 401.2 и пустую страницу. Точно такой же сайт, развернутый на моем промежуточном сервере IIS 8.5, работает безупречно.

Наконец, я заметил разметку в Body Response, которая была пуста браузером, содержала страницу по умолчанию для успешного входа в систему. Я определил, что Custom Обработка ошибок для ASP.NET и HTTP для ошибки 401 препятствовала / препятствовала аутентификации Windows моей рабочей станции, но не промежуточному серверу. Я провел несколько часов, играя с этим, но как только я удалил пользовательскую обработку только для ошибки 401, рабочая станция вернулась к норме. Я представляю это еще один способ снять вашу собственную ногу.

1
ответ дан Mike M 17 August 2018 в 09:00
поделиться

В нашей интрасети проблема была решена на стороне клиента, изменив настройки в безопасности, как показано здесь. Любой из флажков справа работал для нас.

3
ответ дан mosheb 17 August 2018 в 09:00
поделиться

У меня тоже была такая же проблема. Пробовал большинство вещей, найденных на этом и других форумах.

Наконец, это было успешным после выполнения небольшого собственного RnD.

Я зашел в настройки IIS, а затем в настройки моего веб-сайта добавил мои Группа пользователей домена домена.

Теперь, когда все пользователи моего домена получили доступ к этому сайту, я не сталкивался с этой проблемой.

Надеюсь, что это поможет

2
ответ дан Saurabh 17 August 2018 в 09:00
поделиться
  • 1
    Какие опции разрешений вы говорите? Можете ли вы дать более подробные инструкции о том, что вы сделали? – Drew Chapin 20 September 2013 в 17:18

WindowsIdentity.GetCurrent верен: вы должны получить пользователя APPPOOL. Это связано с тем, что процесс ASP.NET, выполняющий ваш код, является текущим идентификатором. Если вы хотите, чтобы пользователь возвращал идентификатор сайта, вам нужно добавить следующую строку в ваш web.config:

<identity impersonate="true" />

Это заставляет процесс принять личность пользователя, запрашивающего страница. Все действия будут выполняться от их имени, поэтому любые попытки чтения папок в сети или доступа к ресурсам базы данных и тому подобное будут означать, что текущему пользователю потребуются разрешения на эти вещи. Подробнее о олицетворении здесь вы можете прочитать здесь . Обратите внимание, что в зависимости от того, как настроена ваша топология веб-сервера или базы данных, вы можете столкнуться с проблемами делегирования с включенной олицетворением.

Но ваша оригинальная проблема заключается в том, что она кажется, что идентификатор не может быть определен, и вы получение всплывающего окна входа. Отмечу, что вам не нужен блок <deny>, если вы отключили анонимную аутентификацию в IIS. Мы никогда не включаем его (кроме специальных <location> блоков и т. Д.), Поэтому я бы сказал, что вы можете попытаться удалить его и повторить попытку. Все остальное звучит правдоподобно.

Вы не указали, какой пользователь запускает пул приложений в IIS. Это пользовательская учетная запись или она по умолчанию? Если это обычай, это учетная запись домена или локальная учетная запись на веб-сервере? Пользовательским учетным записям иногда может потребоваться еще несколько шагов, например, регистрация SPN. Кроме того, может возникнуть проблема с тем, что пользовательская учетная запись не имеет разрешения в AD для разрешения учетной записи входящего пользователя.

Вы также можете проверить журналы IIS, чтобы узнать, какой ответ возвращается. Скорее всего, это будет 401, но у него должен быть дополнительный номер после 401.2 или что-то еще. Этот подканал иногда помогает определить корневую проблему. В этой статье KB перечислены пять.

3
ответ дан Sean Hanley 17 August 2018 в 09:00
поделиться

Не создавайте ошибок на своем сервере, меняя все. Если у вас есть окно для входа в систему при использовании проверки подлинности Windows в 2008 R2, перейдите к Providers и переместите UP NTLM для каждого вашего приложения. Когда Negotiate является первым в списке, Windows Authentication может перестать работать для определенного приложения в 2008 R2, и вам может быть предложено ввести имя пользователя и пароль, чем никогда не работать. Это случается, когда вы делаете обновление своего приложения. Просто убедитесь, что NTLM первым в списке, и вы больше никогда не увидите эту проблему.

11
ответ дан Slo 17 August 2018 в 09:00
поделиться
  • 1
    Это исправило это для меня. – Bigwave 21 November 2013 в 13:48
  • 2
    Если, конечно, вы не хотите, чтобы NTLM был первым в вашем списке ... есть последствия для принятия этого решения, любой, кто внесет такое изменение, должен понимать разницу между NTLM и Negotiate (на самом базовом уровне. Сначала согласовать аутентификацию Kerberos и падения вернуться к NTLM, если это не удастся). Если вы хотите, чтобы Kerberos (и многие это сделали), это не очень хорошее решение. Некоторые подробности здесь: msdn.microsoft.com/en-us/library/aa480475.aspx – TCC 27 November 2013 в 20:48

В моем случае решение было (помимо предложенных выше настроек) перезапустить локальный компьютер / IIS для хостинга (хостинг-сервер). Мой пользователь только что был добавлен во вновь созданную группу безопасности AD - и политика не применима к учетной записи пользователя AD, пока я не вышла из системы / перезагрузила мой компьютер.

Надеюсь, это поможет кому-то.

0
ответ дан ukie 17 August 2018 в 09:00
поделиться
  • 1
    простая командная строка & quot; gpupdate & quot; исправил бы эту проблему – Mike 8 June 2017 в 17:19

У меня была та же проблема, что и пользователь (Identity), который я использовал в пуле приложений, не был ниже для группы IIS_IUSRS. Добавлен пользователь в группу, и все работает

0
ответ дан user3731689 17 August 2018 в 09:00
поделиться

У меня такая же проблема, и она была решена путем изменения идентификатора пула приложений пула приложений, под которым веб-приложение работает в NetworkService

-1
ответ дан Yvette Colomb 17 August 2018 в 09:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: