[ad_1]
皆さんこんにちは、
コード ビハインドから edms または SharePoint リンクにアクセスしようとすると、401 (無許可アクセス) エラーが発生します。以下は、edms または SharePoint リンクにアクセスするために使用されるコードのブロックです。
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 の設定は次のとおりです。
<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記事へのリンク
[ad_2]
コメント