【解決方法】他の Web サイト URL へのアクセス中に IIS 6.0 で 401 エラーが発生する

プログラミングQA


皆さんこんにちは、

コード ビハインドから edms または SharePoint リンクにアクセスしようとすると、401 (無許可アクセス) エラーが発生します。以下は、edms または SharePoint リンクにアクセスするために使用されるコードのブロックです。

C#
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txtLink.Text);
request.UseDefaultCredentials = true;
request.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
request.ImpersonationLevel = TokenImpersonationLevel.Delegation;
CookieContainer cookiescont = new CookieContainer();
request.CookieContainer = cookiescont;
request.AllowWriteStreamBuffering = false;
request.PreAuthenticate = true;
request.AllowAutoRedirect = true;
WebResponse wsc = request.GetResponse();

注: 以下は、環境およびその他の詳細です。
1. Web サイトは .net 3.5 で開発されています
2. Web サイトは IIS 6.0 および Windows 2003 でホストされています。
3. web.config の設定は次のとおりです。

XML
<authentication mode="Windows">
</authentication>
<authorization>
    <deny users="?" />
</authorization>

4. 驚いたことに、同じコード ブロックが、XP と IIS 5.1 がインストールされているローカル マシンで動作しています。

どんな助けでも大歓迎です。

よろしく、
アヌジ・チャウハン
[contact details removed]

解決策 1

リクエストに使用している資格情報が正しくないようです。 開発マシンではなく Web サーバーで実行する場合、System.Net.CredentialCache.DefaultNetworkCredentials は、要求を実行するユーザーではなく、サーバーから資格情報を取得します。

おそらく、Web サーバーで実行するときに request.Credentials に割り当てられているアカウントを正確に確認するために、デバッグを追加してください。

スタックオーバーフローに関するこの投稿をご覧ください

http://stackoverflow.com/questions/1058636/using-defaultcredentials-and-defaultnetworkcredentials[^]

偽装\委任を説明するMSDN記事へのリンク

http://msdn.microsoft.com/en-us/library/ms998351.aspx[^]

コメント

タイトルとURLをコピーしました