0

マシン: Windows サーバー 2016 (IIS 10)

フレームワーク: ASP.net コア 2.2、Web-Api

angular 8クライアント側を備えた単純なASP.NETコアWeb-apiサーバー側があります。アプリケーションは現在、ローカル IIS でホストされています。web-api には、認証属性のないエンド ポイントが含まれています。IIS 構成が匿名認証に設定されている限り、すべて正常に機能します。

IIS 認証をWindows 認証に設定すると (今後、Kerberos\AD 認証を必要とする他のエンドポイントで使用する予定です) 、同じエンドポイントに到達しようとするとエラー 401 unauthorizeが発生します。

私はそれを避ける方法が見つかりませんでした!!

Windows 認証が設定されている場合、エンドポイントに匿名で到達するにはどうすればよいですか?

エラーによると:「Webサーバーは匿名アクセス用に構成されておらず、必要な認証ヘッダーが受信されませんでした」-「withCredentials」:「false」でヘッダーを送信できますか-試してみましたが、役に立ちませんでした。

認証 -> Windows 認証の初期プロパティ:

拡張保護: オフ

カーネル モード認証を有効にする: true

これは私の web-api サンプル エンドポイントです。

[Route("dosomething")]
[HttpGet]

public IActionResult DoSomething()
{
     ...
}

クライアント側:

getData(): Observable<someModel>
{
    return this.httpClient.get<someModel>(<url>)
    .pipe(
    tap(response => 
    {
        do something 
    }),
    catchError(error =>
    {
        <doSomeErrorHandling>
        return throwError(error);
    })
    );
}

アプリケーション プールは次のように定義されます。

.NET CLR バージョン:「マネージド コードなし」

マネージド パイプライン モード: 統合

アイデンティティ: ApplicationPoolIdentity

4

0 に答える 0