1

私が作業している従来のコードでは、WebサービスがSharePointリストにアクセスします。
これらのリストの一部には特別なアクセス権が必要なため、最初にアクセスする際にユーザーの資格情報が要求されます。私は、アプリケーションにいくつかのログを追加した後SharePointリストに匿名でアクセスするとThreadAbortExceptionが発生する

は、しかし、私は、ユーザーがWebサービスを初めてを呼び出そうとした場合に、実際に次のことが起こることに気づい:

  • Webサービスが正常に動作して開始されます。
  • アイテムに特別なアクセス許可が必要な場合、SharePointはThreadAbortExceptionになるHTTP 401を送信します。
  • ユーザーには資格情報ボックスが表示されます。
  • ログイン後、今度は問題なくWebサービスが再度呼び出されます。

本質的には、このシナリオでSharePoint呼び出しの前のコードが2回実行されることを意味します。
コードを実行する前に資格情報ボックスを表示する正しい方法は何ですか?
匿名アクセスがIISを無効にする必要がある場合、これが当てはまりますか?私はそう思っていますが、私は混乱して感じるようにWebプロジェクトの設定にはあまりにも慣れていません。

答えて

3

ASP.Netアプリケーションがリダイレクトを実行すると、ThreadAbortExceptionは正常です。この場合、例外をキャッチするようにデバッグしています。

最高のアドバイスは、それがexpectedの例外であるため、エラーを無視することです。

+0

うん、しかし、私はコードがデータベースに何かを書いて、状態が既に変更されたときにユーザーが最初に認証する必要があるSharePoint呼び出しを発見するだけではいけません。 –

+1

標準的なプロセスでは、呼び出しが認証されずに401が受信され、Windowsの認証が試行されます。したがって、あなたが記述したシナリオは、コードの正確な動作においてまさに期待されるものです。 – Nat

関連する問題