- PVSM.RU - https://www.pvsm.ru -
В корпоративной среде часто возникает необходимость в веб-приложении на asp.net реализовать возможность выхода через прокси сервер (даже с авторизацией) для скачивания той или иной информации.
Например:
В web.config добавляем раздел defaultProxy с указанием прокси сервера.
<configuration>
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy proxyaddress="http://proxyserver:80" bypassonlocal="true" />
</defaultProxy>
</system.net>
</configuration>
2.1) Авторизуем сервер (кардинальный подход, не всегда удобен и менее безопасен). В данном варианте используются такие же настройки в web.config, как в пункте 1), но также необходимо, чтобы администраторы прокси предоставили доступ для сервера по его ip адресу для определенных веб-ссылок или на весь интернет. Учтите, что часто очень сложно определить, на какие же ссылки пытается получить доступ CMS или SharePoint server.
Если обратить пристальное внимание на ту же статью в MSDN [2] то для раздела defaultProxy можно указать дополнительный подраздел module.
Это очень важный раздел, который позволяет создать свой (легко встраиваемый) код доступа к прокси серверу. При этом нет необходимости редактировать код самого приложения.
Также лучше создать сервисную, доменную запись для авторизации.
using System;
using System.Collections.Generic;
using System.Net;
using System.Text;
namespace MyCorpAssembly
{
public class MyCorpProxy : IWebProxy
{
public ICredentials Credentials
{
get { return new NetworkCredential("user", "password","domain"); }
set { }
}
public Uri GetProxy(Uri destination)
{
return new Uri("http://my.proxy:8080");
}
public bool IsBypassed(Uri host)
{
return false;
}
}
}
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="false">
<module type = "MyCorpAssembly.MyCorpProxy, MyCorpAssembly" />
</defaultProxy>
</system.net>
Думаю, такой же функционал может работать и для приложений, написанных на .net, но я не проверял.
Просто в папке рядом с приложением необходимо создать AppName.exe.Config файл и добавить туда раздел defaultProxy
Автор: Omankit
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/113963
Ссылки в тексте:
[1] MSDN: https://msdn.microsoft.com/en-us/library/kd3cf2ex(v=vs.110).aspx
[2] MSDN: https://msdn.microsoft.com/en-us/library/6w93fssz(v=vs.110).aspx
[3] my.proxy: http://my.proxy
[4] Источник: https://habrahabr.ru/post/278453/
Нажмите здесь для печати.