1

mvc 4 Web API で authorize 属性を使用しようとしていますが、機能していません。何かが足りないことはわかっていますが、見つけることができません。

[HttpGet]
    [Authorize]
    public JArray getDistance(string origin, string destination)
    {
       some code..
    }

私のweb.configファイルは-

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" requireSSL="true" cookieless="UseCookies" name="authcookie"  protection="All" slidingExpiration="false">
  </forms>
</authentication>

私のフォーム認証クッキーは -

FormsAuthenticationTicket token = new FormsAuthenticationTicket(
            1,
            UserName,
            DateTime.Now,
            DateTime.Now.AddHours(24),
            false,
            "user Token"

            );
        string EncToken = FormsAuthentication.Encrypt(token);
        HttpCookie cookie = new HttpCookie("authcookie", EncToken);
        cookie.HttpOnly = true;
        HttpContext.Current.Response.Cookies.Set(cookie);
4

2 に答える 2

1

Web APIの場合、使用していることを確認してください

System.Web.Http名前空間

いいえ

System.Web.Mvc

于 2013-11-14T06:27:03.603 に答える
0

私の知る限り、コントローラーのアクションを[承認]できます。しかし、他の方法で試してみることについては知りません。考慮すべき点はいくつかありますが、ログインおよびログアウト時に Cookie が適切に消去または保存されているかどうかを確認してください。カスタム認証フィルターを作成できます。これをチェック

幸運を

于 2013-11-14T09:48:18.683 に答える