Как определить, под какой учетной записью работает мой веб-сервис в Visual Studio 2005



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



Я зарегистрирован как myDomainNamejohna на моей рабочей станции разработки под названием JOHNXP. С Vstudio2005 я запускаю свой веб-сервис через Debug, и в моем браузере появляется страница wsdl.



Из Диспетчера задач, я вижу следующее, сидя в точке останова в моем .код asmx:



Aspnet_wp.exe pid=1316 Имя пользователя=ASPNET
команда devenv.exe pid=3304 UserName=johna



Вкладка Безопасность каталога IIS для виртуального каталога, в котором размещается мой ws.в коде asmx не установлен флажок "Разрешить анонимный доступ", а также флажок "встроенная проверка подлинности Windows".



Итак, когда люди MSDN заявляют: "вы должны настроить учетную запись пользователя, под которой выполняется серверный процесс", на что они ссылаются в случае моего маленького веб-сервиса, описанного выше?



Я цитирую из:
http://msdn.microsoft.com/en-us/library/aa302400.aspx



В конечном счете, я хочу, чтобы этот мой веб-сервис олицетворял все, что аутентифицированный пользователь домена просматривает для вызова моего веб-сервиса. Мой веб-сервис, в свою очередь, использует другой веб-сервис ASMX на другом сервере (но в том же домене). Мне нужно, чтобы этот удаленный веб-сервис использовал учетные данные пользователя олицетворенного домена (не те, что у моего веб-сервиса на JOHNXP).



Так что это становится немного раздражающим для меня, чтобы понять это и я вижу, что мне неясно, какую учетную запись использует моя веб-служба. Я думаю, что это ASPNET в IIS 5.1 на WinXP, но не уверен.

675   2  

2 ответов:

По умолчанию любое приложение, запущенное поверх ASP.NET (включая веб-службы ASMX) будет выполняться под ASP.NET учетная запись машины (ASPNET) контекст безопасности, который имеет ограниченные привилегии на главной машине.

Это поведение можно изменить, включив олицетворение , которое вызовет ASP.NET приложение для выполнения в контексте безопасности аутентифицированного пользователя или конкретной учетной записи пользователя. Олицетворение включено в Сети.конфиг файл:

<system.web>
  <!-- ASP.NET runs as the authenticated user -->
  <identity impersonate="true" />
</system.web>

<system.web>
  <!-- ASP.NET runs as the specified user -->
  <identity impersonate="true"
            username="DOMAIN\user"
            password="password" />
</system.web>

Когда Встроенная аутентификация Windows включена в IIS и анонимная учетная запись пользователя Интернета отключена, аутентифицированный пользователь будет удостоверением Windows клиента, выполняющего HTTP-запрос.
при включенном олицетворении эта же идентичность будет использоваться ASP.NET рабочий процесс при обработке запроса.

Кстати, помимо ответа, над ним на самом деле должно быть:

<system.web>
  <!-- ASP.NET runs as the specified user -->
  <identity impersonate="true"
            userName="DOMAIN\user"
            password="password" />
</system.web>

Имя пользователя должно быть прописным n - > userName

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

Comments

    Ничего не найдено.