1

アプリを作成し、常に認証を強制するアプリケーション コントローラー(ベース コントローラー) を持っています。必要に応じて、派生コントローラー内でこれをオーバーライドできます。このコントローラーには [Authorize] 属性があります。

Nhibernate セッション、ロガーなどにアクセスするために、アプリケーション コントローラーから派生したApi ベース コントローラーの作成を開始しました。

私のアプリケーションでは、FormsAuthentication を次のように設定していることを確認します。

        var cookie = FormsAuthentication.GetAuthCookie(Name, false);
        var ticket = FormsAuthentication.Decrypt(cookie.Value);

        var expiration = DateTime.Today.AddDays(5);

        var newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, expiration,
            ticket.IsPersistent, value.APIToken, ticket.CookiePath);
        var encTicket = FormsAuthentication.Encrypt(newTicket);


        cookie.Value = encTicket;
        cookie.HttpOnly = true;

        HttpContext.Current.Response.Cookies.Add(cookie);

私のApiにも同じことが必要ですか? 理想的には、ヘッダーまたはクエリ文字列を介して提供される認証を使用して、すべてのリクエストでユーザーを認証したいと考えています。

site.com/api/v1/projects?clientid=xxx&token=xxxxxxxxxxx

Api コントローラーへのリクエストは、属性 [AllowAnonymous] がある場合にのみ機能します。

API 呼び出しを認証する最良の方法は何ですか?

4

0 に答える 0