2016-12-15 1 views
3

アプリケーションをスタンドアロンで実行すると(私のケースでは特定のポートで実行されているkestrelサーバー:3001)、ログインできます(認証Cookieを作成)。私のAPIコントローラへの後続の呼び出しを行います。しかし、IIS経由でホストするアプリケーションを公開すると問題なくログインできますが、それ以降のすべてのAPIコントローラへのリクエストは認証に失敗し、ログインにリダイレクトされます。再現するためにAngular2AspNetCoreStarter.Net Core Cookie認証がIISでホストされていない場合

:レポ

  • は、プロジェクトディレクトリcd Angular2AspNetCoreStarter
  • にナビゲート

    1. クローン私はここで見つけることができ、作業サンプルまで自分のアプリケーションを剥奪している私の問題を実証するために

    2. インストール依存関係dotnet restore & npm install
    3. は、ビルドnpm run build
    4. ホストされているサイトにIIS経由Publishing to IIS
    5. 移動をdotnet publish
    6. ホストを公開する任意のユーザー名/パスワード
    7. オープンサイド・ナビゲーション
    8. をクリックして
    9. ログイン(私の場合、それはhttp://localhost/ng2starter @でした)匿名Pingを送信FYI CookieAuth was not authenticated. Failure message: Unprotect ticket failed
      :私は)トラフィックを検査
    10. クリックのPingを送信する(401気づくと

    私は、ログを検査してきたと私はチョウゲンボウログで見つける誤差がある)ログインにリダイレクトするためにFiddlerを使用しました'CookieAuth'はappsettings.jsonファイルで定義したスキームの名前です。

    +0

    @WarrenP 'npm install'を実行し、' npm run build'を使用してビルドしました – wickdninja

    +0

    新しい命令がはるかに優れています!私はそれを働かせる。私が家にいるときにIIS上でテストし、それを把握できるかどうかを確認します。もちろん、IISで実行すると、デバッグが難しくなります。 –

    +0

    合意...それは私の問題の半分です。あなただけがIISで実行し、ASP.NET(コアではない)のようにデバッガを接続することができる場合 – wickdninja

    答えて

    5

    同じCookie名を持つ別の「localhost」アプリケーションのCookieが重複しているか、重複している可能性があります。私は、IISであなたのサンプルを実行したとpingから同じ401エラーを取得した後、同じデフォルト名でクロームにlocalhostのクッキーの束に気づい

    .AspNetCore.CookieAuth

    私はクッキーのすべてをクリアその後、もう一度サンプルを実行し、バック「PONG」あなたはIISEXPRESS を使用しているときに作成されます

    クッキーを得たローカルホスト:PORT

    もあなただけのローカルホストにIISで実行しているときに降りてくるだろう私の推測では、IISEXPRESSのクッキーはIISのイン彼らは一時的なデータ保護を持っているので、彼らは解読することができません。

    +1

    あなたは正確です!どうもありがとうございました! :) – wickdninja

    関連する問題