マネージコードから7.5アクセスできないファイルをIIS
質問
私は、クリックワンス展開7.5 WebサーバーをIISからであるプロジェクトに取り組んでいます。親アプリケーション(すなわち、IISのサイトを設定)をインストールした後、私は、クリック一回アプリの設定ファイルのリモートボックスからのURLをヒットすることができるよ。
私は私のアプリ(およびスタブアプリ以下)から同じことをしようとしたときしかし、私は401無断ます。
IEからURLを打つの違いは何であり、A .NETアプリ?
から
ファイルやディレクトリ自体は、現時点ではWebサーバ上のすべての人に付与された完全な制御を持っている、と私はボックスの管理者です。私たちは、NTLMでWindows認証を使用しています。
おかげで、 -Bob
不正場合doc.Load()ライン上で -ここでは401を生成するスタブアプリケーションです。私はIEから成功した同じURLをヒットし、ファイルを開くことができます...
static void Main(string[] args)
{
Console.WriteLine("Config Test");
string filename = "http://dev-rs/myClient/myClickOnce/myApp.config.xml";
Console.WriteLine(filename);
XmlDocument doc = new XmlDocument();
doc.Load(filename);
Console.WriteLine("Loaded");
Console.WriteLine("Inner Text : " + doc.InnerText);
}
解決
の原則を確立します:
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
のXMLDocumentは、いつURLからロードの資格情報を渡すことをサポートしていません。代わりに、WebRequestクラスストリームからロードし、ロードの前に要求に認証情報を設定します。
WebRequest request = HttpWebRequest.Create(filename);
request.Credentials = CredentialCache.DefaultCredentials;
XmlDocument doc = new XmlDocument();
doc.Load(request.GetResponse().GetResponseStream());
所属していません StackOverflow