非同期リクエストでのフォーム認証の実装

JDavis

.net Web APIバックエンドを備えたAngularアプリで、非同期リクエストを介してフォーム認証を実装しようとしています。

これが私のweb.configの関連部分です...

<authentication mode="Forms">
  <forms loginUrl="/" cookieless="UseCookies" name=".TIMETRACK" requireSSL="false" timeout="30" protection="All" path="/TimeTrack" />
</authentication>

これが私のWebAPIログイン方法です...

    [Route("Login")]
    public HttpResponseMessage Post(AppUser credentials)
    {
        var userTemplate = _authenticationProvider.GetUserByEmail(credentials.Email);

        var user = Mapper.Map<ClientUser>(credentials);
        if (userTemplate.HashCode == _cryptographyService.HashPassword(credentials.Password, userTemplate.Salt))
        {
            FormsAuthentication.SetAuthCookie(userTemplate.Email, false);
            user.IsAuthenticated = true;
        }
        return Request.CreateResponse(HttpStatusCode.OK, user);
    }

これが私のAngularControllerメソッドの呼び出しです...

    $scope.authenticate = function () {
        if (validateAuthentication()) {
            $http.post('Authentication/Login', { Email: $scope.email, Password: $scope.password })
                .then(loginSuccess, loginFailure);
        }
    };

ログイン後に返送されるフィドラーで応答を分析すると、これを見ることができます...

Set-Cookie: .TIMETRACK=4D69EB09BD2B5B1444FBF07D1AB5EEE86DDEFD237AF451EF38EF6FD78E56E24DBD01369DEC865F81297114FF354BF3BC5C6099C3C5D1D89C001014BE071B4CB5A3059E28DBC7D6B25EE27A6FE2A31E278106D78E8FE080F73A6C8BBD3B6B83F12FAE9CD1AEE80629AA72B1DD16E0606D92D0C74F8388A932930C15D89178F92A; path=/TimeTrack; HttpOnly

つまり、Cookieが作成されているようです。ただし、サーバーへの後続の要求では...

User.Identity.IsAuthenticated

常に偽です。また、Cookieがサーバーに送り返される兆候も見られません。

その認証Cookieをサーバーに戻すために特別なことをする必要がありますか?

その価値のために、私はこのプロジェクトをGitHubで公開しています。ここでそれを見ることができます... https://github.com/JosephEricDavis/TimeTrack

助けてくれてありがとう

JDavis

そのため、web.configファイルのノードに誤ってpath属性を設定したことがわかりました。パス属性を削除すると、期待どおりに機能し始めました。

クッキーのパスが何であるかを知らない私のような人のために。このリソースが役に立ったと思います。

Cookieパスとサブフォルダーページへのアクセス可能性

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

非同期認証状態リクエストでのVuejsルートナビゲーションガード

分類Dev

承認されていない非同期リクエストでフレームワークのサーバー側リダイレクトを再生する

分類Dev

抽象ファクトリパターンの非同期実装と非同期実装を組み合わせる

分類Dev

フォームリクエストの検証が実行されない

分類Dev

マテリアルUIReactでのフォーム検証-ドロップダウンリストのフォーム検証を実装する方法

分類Dev

クエリ結果の非同期ストリームを返す

分類Dev

Web アプリからの Azure 非同期認証トークン

分類Dev

Laravelフォームのリクエストと検証

分類Dev

非同期リクエストからAngularFormのデフォルト値を初期化する方法(フォームコントロール)

分類Dev

Java内でのJavascriptフォームリクエストの実行

分類Dev

非同期httpリクエストの下で画面をロード

分類Dev

フォームリクエスト検証でのLaravelカスタムフィールド名

分類Dev

トークンバケットアルゴリズムベースの非同期セマフォ

分類Dev

インメモリデータリストの非同期インターフェイスの実装

分類Dev

非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

分類Dev

Azure関数に非同期の「ファイアアンドフォーゲット」HTTPトリガーを実装できますか

分類Dev

Forループ-同期方式でのAlamofireリクエストSwift4-非同期リクエストが返されるまでforループ待機を実行

分類Dev

カスタムリクエストでのNuxt認証更新認証

分類Dev

非同期リクエストの実行速度が遅い-iOS

分類Dev

Laravelforceの一意の役割の検証がフォームリクエストで失敗する

分類Dev

Facebook認証で追加のクレームをリクエストする方法

分類Dev

VSIXでのカスタムコマンドの非同期実装

分類Dev

Laravelのフォームリクエストでデータを検証する際の問題

分類Dev

フォーム制御の非同期検証の問題

分類Dev

Javaの非同期HTTPリクエスト

分類Dev

MetaTraderの非同期Webリクエスト

分類Dev

.NETCoreとの非同期リクエスト

分類Dev

AmazonFirehoseへの非同期リクエスト

分類Dev

複数の非同期リクエスト

Related 関連記事

  1. 1

    非同期認証状態リクエストでのVuejsルートナビゲーションガード

  2. 2

    承認されていない非同期リクエストでフレームワークのサーバー側リダイレクトを再生する

  3. 3

    抽象ファクトリパターンの非同期実装と非同期実装を組み合わせる

  4. 4

    フォームリクエストの検証が実行されない

  5. 5

    マテリアルUIReactでのフォーム検証-ドロップダウンリストのフォーム検証を実装する方法

  6. 6

    クエリ結果の非同期ストリームを返す

  7. 7

    Web アプリからの Azure 非同期認証トークン

  8. 8

    Laravelフォームのリクエストと検証

  9. 9

    非同期リクエストからAngularFormのデフォルト値を初期化する方法(フォームコントロール)

  10. 10

    Java内でのJavascriptフォームリクエストの実行

  11. 11

    非同期httpリクエストの下で画面をロード

  12. 12

    フォームリクエスト検証でのLaravelカスタムフィールド名

  13. 13

    トークンバケットアルゴリズムベースの非同期セマフォ

  14. 14

    インメモリデータリストの非同期インターフェイスの実装

  15. 15

    非同期処理のためにGuzzleHTTPリクエストオブジェクトに認証を追加する方法

  16. 16

    Azure関数に非同期の「ファイアアンドフォーゲット」HTTPトリガーを実装できますか

  17. 17

    Forループ-同期方式でのAlamofireリクエストSwift4-非同期リクエストが返されるまでforループ待機を実行

  18. 18

    カスタムリクエストでのNuxt認証更新認証

  19. 19

    非同期リクエストの実行速度が遅い-iOS

  20. 20

    Laravelforceの一意の役割の検証がフォームリクエストで失敗する

  21. 21

    Facebook認証で追加のクレームをリクエストする方法

  22. 22

    VSIXでのカスタムコマンドの非同期実装

  23. 23

    Laravelのフォームリクエストでデータを検証する際の問題

  24. 24

    フォーム制御の非同期検証の問題

  25. 25

    Javaの非同期HTTPリクエスト

  26. 26

    MetaTraderの非同期Webリクエスト

  27. 27

    .NETCoreとの非同期リクエスト

  28. 28

    AmazonFirehoseへの非同期リクエスト

  29. 29

    複数の非同期リクエスト

ホットタグ

アーカイブ