質問

次のコードがあります:

using ( var site = new SPSite( myUrl ) ) {
    using ( var web = site.AllWebs[0] ) {
        // read-only operations
    }
}

<!> quot; myUrl <!> quot; WSS 3.0のトップドメインURLです。認証はWindowsに設定されます。 <!> quot; external_app_user <!> quotの下のコマンドラインからこのコードを実行すると、アカウント、すべてが大丈夫です。ただし、このコードをWebサービス(WSS Webアプリケーションの外部)から実行すると、結果はhttp response <!> quot; 401 UNAUTHORIZED <!> quot;になります。 SOAP応答の代わりに。このコードは<!> quot; try-catch <!> quot;にあるため、奇妙です。ブロックし、例外がスローされた場合は、SOAP応答で独自のエラーメッセージを返しました。

コードはWSSと同じマシンで実行されています。

Webサービスが実行されているマシンでwebbroserからWebサービスを実行すると、クラシックWindowsログインフォームが表示されます。別のコンピューターのwebbrowserからWebサービスを実行すると、<!> quot; 401 UNAUTHORIZED <!> quot; http応答。

Webサービスは正しいアカウントで実行されています。このアカウントは、WSS(sharepoint Webサイトでテスト済み)にアクセスできます。 <!> quot; System.Security.Principal.WindowsIdentity.GetCurrent()。Name <!> quot;を取得しようとすると、正しいユーザー名が返されます。

web.configで<!> quot; <!> lt; identity impersonate = <!> quot; true <!> quot;が設定されます。 userName = <!> quot; _my_username _ <!> quot; password = <!> quot; _my_password _ <!> quot; / <!> gt;。

誰が間違っているのか知っていますか?

役に立ちましたか?

他のヒント

401をキャッチできない理由は、SharePointにこの例外のカスタム処理があるためです。次のスレッドを参照してください: SharePoint Access拒否エラーをキャッチできません(無効にする方法の提案を含む)。

匿名認証とWindows認証の両方が許可されている場合、IISでチェックインできます。その後、WindowsのIDを読み取る代わりに、匿名として許可される可能性があります。これは、後で不正につながります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top