1

Asp.net WebAPI を使用して Restful Web サービスを開発し、web.config ファイルで Windows 認証を使用しました。この WebService は、内部ネットワーク内の社内 Windows アプリケーションによって呼び出されます。問題は、IEブラウザからwebServiceにリクエストを送信すると、認証と承認が正常に機能することです。しかし、Widows アプリケーションを介してリクエストを送信すると、ユーザーは認証されません。シナリオ: 以下の構成を使用すると、Web ブラウザーからの要求は正しく認証されますが、ユーザーが正しいロールを持つ正しい AD グループに属していても、Windows アプリケーションからの要求は認証されません。

   <authentication mode="Windows"/>
    <authorization>
       <allow roles = "someGroup1"/>
       <allow roles = "Somegroup2"/>
       <deny users="*" />
    </authorization>

何が問題なのか、何か提案をしてください。

4

1 に答える 1

3

Windowsクライアントがユーザー情報をWebホストに送信していなかったため、認証と承認が失敗していたという問題が見つかりました。私は NTML 認証を使用していたので、この問題を解決するには、以下のように認証子を restClient に追加する必要がありました。

var client = new RestClient();
     client.BaseUrl = ServiceUrl;
     client.RemoveHandler("application/json");
     client.RemoveHandler("text/json");
     **client.Authenticator = new NtlmAuthenticator();** 
于 2012-11-29T21:01:19.357 に答える