2017-02-17 7 views
0

Windows認証を使用しているOWIN/Katana WebAPIがあります。ローカルで実行すると、Windowsの資格情報を取得することができます。しかし、WebAPIをサーバー/クラスタに展開すると、ログインとパスワードの入力を求めるメッセージが表示され続けます。Windows認証を使用しているOWIN/Katana WebAPIは、ログイン/パスワードを要求し続ける

私は現在、Startup.csに次き:

//Set up integrated windows authentication. 
    HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"]; 
    listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; 

私も同様にこれを試してみました:フィドラーで

HttpListener listener = (HttpListener)appBuilder.Properties["System.Net.HttpListener"]; 
    listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate; 

を、私は、サーバー上で(私のAPIを打つことができました)認証を有効にします。しかし、別のアプリケーションからAPIを使用すると、自動的に401 Unauthorizedが返されます。 Windows認証を特に作成した場合でも手動ログインを促すのはなぜですか?

私はこれらの記事を追ってきた:

http://www.sbrickey.com/Tech/Blog/Post/AllowAnonymous_for_OWIN_Katana_self_hosted_WebAPIs_using_Kerberos

https://blogs.msdn.microsoft.com/chiranth/2013/09/20/ntlm-want-to-know-how-it-works/

https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/enabling-windows-authentication-in-katana

+0

発信者がユーザーの資格情報を渡さない場合、プロンプトは正常です。適切なクライアント側のコードを記述する必要があります。 –

+0

返信ありがとう@LexLi - これはなぜ通常の動作ですか?クライアントコンピュータのWindowsログイン資格情報が自動的に渡されるべきではありませんか?デバッグ時にAPIをローカルで実行したときに、なぜ私にプロンプ​​トが表示されませんでしたか?愚かな質問を申し訳ありません - 私はまだauthsの新しいです。 – Jacky

+0

ユーザーの資格情報は、特にコード経由で呼び出すときに自動的に渡されません。あなたが正しく設定しない限り、IEでもあなたにプロンプ​​トを表示します。あなたが学ぶにはあまりにも多くのことがあります。 –

答えて

0

私のWebクライアントが(@LexLiのおかげで)失敗している理由は、私が見つけました。問題は自分のAPIにあると思っていましたが、クライアントから自分のユーザーの資格情報を送信していないことが判明しました。私は自分のHttpClient用のHttpHandlerにユーザーの資格情報を追加していました。

new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }) 
関連する問題