Как определить, под какой учетной записью работает мой веб-сервис в Visual Studio 2005 - PullRequest
3 голосов
/ 24 апреля 2009

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

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

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

aspnet_wp.exe pid = 1316 UserName = 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 ]

2 голосов
/ 19 ноября 2009

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

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

Для имени пользователя требуется заглавная буква N -> userName

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

2 голосов
/ 24 апреля 2009

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

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

<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>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...