私は、宣言的な方法で証明書の検証を無効にする方法を探しています。 これはsvcutil.exeを使用するときに非常に便利です。宣言.configファイル*からServicePointManagerのServerCertificateValidationCallbackプロパティを設定する方法はありますか?
これまでのところ私は、ホスト名の検証を無効にする方法を知っている:
<system.net>
<settings>
<servicePointManager checkCertificateName="false" />
</settings>
</system.net>
をが、これはsufficentではありません。 私はこれを主張している誰かが行うことができます見られますが、いずれのサンプルwihtoutてきました。
<system.net>
<webRequestModules xdt:Transform="Insert">
<clear/>
<add prefix = "http" type = "HttpRequestCreatorWithServerCertificateValidationCallback, TestHelpers"/>
<add prefix = "https" type = "HttpRequestCreatorWithServerCertificateValidationCallback, TestHelpers"/>
</webRequestModules>
</system.net>
HttpRequestCreatorWithServerCertificateValidationCallback.cs
public class HttpRequestCreatorWithServerCertificateValidationCallback : IWebRequestCreate
{
static HttpRequestCreatorWithServerCertificateValidationCallback()
{
var type = typeof(HttpWebRequest).Assembly.GetType("System.Net.HttpRequestCreator");
var ctor = type.GetConstructors()[0];
Creator = (IWebRequestCreate)ctor.Invoke(null);
ServicePointManager.ServerCertificateValidationCallback += delegate
{
return true;
};
}
#region IWebRequestCreate Members
public WebRequest Create(Uri uri)
{
return Creator.Create(uri);
}
#endregion
private static readonly IWebRequestCreate Creator;
}
ない、宣言していますが、フィドラーは、証明書の検証の問題を回避してsvcutilだます使用することができます:) –