授权Api控制器上的过滤器 - FormsAuthentication?

时间:2013-02-21 12:41:02

标签: asp.net-mvc api

我已经创建了我的应用程序,并且我有一个应用程序控制器(基本控制器),我始终强制进行身份验证。如果需要,我可以在任何派生控制器中覆盖它。我在这个控制器上有一个[Authorize]属性。

我刚开始创建 Api Base控制器,它来自我的应用程序控制器,可以访问Nhibernate会话,记录器等。

在我的应用程序中,我确保像这样设置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

只有具有以下属性:[AllowAnonymous]

时,对我的Api控制器的请求才有效

对我的api电话进行身份验证的最佳方式是什么?

0 个答案:

没有答案