Здравствуйте, трайкатч, Вы писали:
Т>>>Можно ли заставить выполняться метод веб сервиса под конкретным пользователем? Задача такая: в методе web сервиса используется сторонний компонент, в котором идет обращение (с помощью TcpClient-а) к внешнему ip адресу. Запросы к ip адресу обламываются, поскольку веб сервис работает под ASPNET клиентом, который не прописан на прокси сервере. Т>>>Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо! V>>Если IIS версии 6 и выше — пропишите пользователя в application pool V>>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx) Т>Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом
А прокси-то какой? И какого типа (HTTP, SOCKS...)? Windows-аутентификацию, вроде, только майкрософтовский понимает. Если какой другой — надо это делать средствами протокола, смена пользователя тут не поможет.
Здравствуйте, трайкатч, Вы писали:
Т>>>Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо! V>>Если IIS версии 6 и выше — пропишите пользователя в application pool V>>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx) Т>Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом
Ну тогда попробуйте имперсонироваться вручную перед тем, как отправлять запрос на сервер.
Пример есть тут (в конце кода): http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx
Здравствуйте, трайкатч, Вы писали:
Т>Можно ли заставить выполняться метод веб сервиса под конкретным пользователем? Задача такая: в методе web сервиса используется сторонний компонент, в котором идет обращение (с помощью TcpClient-а) к внешнему ip адресу. Запросы к ip адресу обламываются, поскольку веб сервис работает под ASPNET клиентом, который не прописан на прокси сервере. Т>Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо!
Если IIS версии 6 и выше — пропишите пользователя в application pool
Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx)
Можно ли заставить выполняться метод веб сервиса под конкретным пользователем? Задача такая: в методе web сервиса используется сторонний компонент, в котором идет обращение (с помощью TcpClient-а) к внешнему ip адресу. Запросы к ip адресу обламываются, поскольку веб сервис работает под ASPNET клиентом, который не прописан на прокси сервере.
Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо!
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, трайкатч, Вы писали:
Т>>Можно ли заставить выполняться метод веб сервиса под конкретным пользователем? Задача такая: в методе web сервиса используется сторонний компонент, в котором идет обращение (с помощью TcpClient-а) к внешнему ip адресу. Запросы к ip адресу обламываются, поскольку веб сервис работает под ASPNET клиентом, который не прописан на прокси сервере. Т>>Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо! V>Если IIS версии 6 и выше — пропишите пользователя в application pool V>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx)
Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом
Здравствуйте, трайкатч, Вы писали:
V>>Если IIS версии 6 и выше — пропишите пользователя в application pool V>>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx) Т>Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом
Есть еще вариант — заводить приложение на IISExpress
Здравствуйте, hardcase, Вы писали:
V>>>Если IIS версии 6 и выше — пропишите пользователя в application pool V>>>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx) Т>>Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом
H>Есть еще вариант — заводить приложение на IISExpress
Ага. Или вообще свой процесс сделать.
Здравствуйте, vmpire, Вы писали:
V>А прокси-то какой? И какого типа (HTTP, SOCKS...)? Windows-аутентификацию, вроде, только майкрософтовский понимает. Если какой другой — надо это делать средствами протокола, смена пользователя тут не поможет.
WindowsIdentity windowsIdentity = new WindowsIdentity(WindowsIdentity.GetCurrent().Token, "WindowsAuthentication");
WindowsImpersonationContext impersonationContext =
windowsIdentity.Impersonate();
все равно никак
Проблема кажется не в этом. Весь инет уже облазил. Не пойму в чем дело. Прокси сервер ISA Server. Через консольного клиента вот такое
var canRead = new TcpClient("ya.ru", 80).GetStream().CanRead;
проходит на ура.
Через web сервис тот же самый код падает — "Получен недопустимый аргумент 93.158.134.3:80".
Касперского выгрузил, брандмауэр отключен.
Web config содержит следующие настройки:
Здравствуйте, vmpire, Вы писали:
V>Здравствуйте, трайкатч, Вы писали:
Т>>>>Нужно либо авторизоваться на прокси сервере, либо выполнить код web сервиса под другой учеткой (не ASPNET). Может есть какие-то идеи? Заранее спасибо! V>>>Если IIS версии 6 и выше — пропишите пользователя в application pool V>>>Если более старый — поставьте имперсонирование конфиге приложения (http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx) Т>>Спасибо! IIS 5.1. Прописал в конфиге <identity impersonate="true" userName="domain\User" password="pass"/>. Но все равно облом V>Ну тогда попробуйте имперсонироваться вручную перед тем, как отправлять запрос на сервер. V>Пример есть тут (в конце кода): http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx
Добавлю, что на студийном ASP.NET Development Server-е все запросы проходят нормально