Как определить, под какой учетной записью работает мой веб-сервис в 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, но не уверен.
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