2

UIの実装でJavaScriptを多用するWebパーツがあります。また、一部のSharePoint Webサービスへの非同期XmlHttpRequest要求を利用します(私はSPServicesを使用しています)。

一部の要求では、ユーザーはNTLM認証の課題に直面し、資格情報を入力した後、要求は完了します。これは、3つを超えるリクエストがありますが、1ページのロードで3回発生します。これについて私が混乱していることがいくつかあります:

  • 私が言ったように、すべてのリクエストにこの問題があるわけではありません
  • ユーザーはすでにNTLM認証を使用してサイトにアクセスしているのに、なぜajaxリクエストがチャレンジされるのですか?
  • これはWindowsドメイン環境にあります。非ドメイン環境では、この問題は存在しません(ただし、Windows認証は両方で使用されています)。

もちろん、これはすべてIEにあります。私が試した1つのことは、NTLM認証ヘッダーをajaxリクエストに挿入することでしたが、それは何も変わりませんでした(実際にはそうなるとは思いませんでしたが、試す価値がありました)。

助言がありますか?

4

4 に答える 4

1

Internet Explorer は、特定のサイトに対して NTLM 認証されているかどうかを記憶しています。そのサイトへの POST を要求された場合、サイトが再認証することを期待します。サイトがそうでない場合、ブラウザーは投稿の本文で詳細を送信しません。

于 2010-07-08T09:44:25.527 に答える
1

使用: transport clientCredentialType="Windows"

詳細については、http://msdn.microsoft.com/en-us/library/bb226411( BTS.20 ).aspxを確認してください。

于 2010-03-02T11:43:05.347 に答える
1

このようであってはなりません。Windows 認証はプロセスごとであり、すでに認証されている場合は、何かを再度ロードしても認証されたままになります。それがブラウザーのメイン接続であるか XHR 要求であるかは問題ではありません。

テスト サーバーの 1 つで、この奇妙な動作を確認しました。その場合、SharePoint への WebDAV アクセスも壊れていて、\\sharepointserver\sites\somesiteパスにアクセスできないこともありました (ただし、数分後に再びアクセスできるようになりました)。その場合、Kerberos 認証に問題があり、間違ったトークンが発行されることがあったようです。ただし、新しいサーバーをインストールしてコンテンツ データベースを接続しただけで、問題は解決しませんでした。それは働いた:-)

于 2010-01-28T08:25:10.130 に答える
0

この問題は、HTTP1.1 セッション タイムアウトが原因です。NTLM 認証済みサイトに初めてログインすると、HTTP セッションが開かれます。このセッションは認証され、このセッションが開いている間に行ったすべての要求は、セッションの NTLM トークンで自動的に認証されます。XmlHttpRequest を作成するときに、HTTP セッションがまだ開いている場合、リクエストは認証を要求しません。ただし、セッションが期限切れになるか、何らかの方法で終了した場合。次に、ログインを求められます。それをよりよく理解するには、HTTP1.1 プロトコルを簡単に検索するだけで、私が話していることをよりよく理解できます。

于 2010-02-17T13:27:27.843 に答える