【发布时间】:2016-06-15 10:05:51
【问题描述】:
我正在使用 .NET Web API 实现服务端的 Angular 项目。 Web API 是无状态的,所以我使用 Cookie 来维护身份验证。 AuthLogin Controller 检查凭据是否正确,如果正确,则创建 Cookie 并通过 HTTP 响应传递 cookie。此外,我添加了 ActionFilterAttribute 来验证用户。如果 Web API 收到任何请求,它会在进入控制器之前触发 ActionFilterAttribute。他们我正在检查,请求包含任何 Cookie,并与数据库一起检查。 验证 Cookie 后,我需要将 Cookie 有效期延长至 30 分钟。
我的 Web API 控制器方法
[HttpPost]
public HttpResponseMessage AuthLogin()
{
serverCookie = new CookieHeaderValue
("Test", "Super");
serverCookie.Expires = DateTimeOffset.Now.AddMinutes(15);
serverCookie.Domain = Request.RequestUri.Host;
serverCookie.Path = "/";
HttpResponseMessage response = Request.CreateResponse(_credential.Item2 ? HttpStatusCode.OK : HttpStatusCode.Unauthorized);
response.Headers.AddCookies(new CookieHeaderValue[] { serverCookie });
return response;
}
[HttpPost]
[Authenticate]
public string SecurePost()
{
return "Success";
}
ActionFilterAttribute C# 代码:
public class AuthenticateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
Debug.WriteLine("Cookie Life Time Extended Successfully to 30 Mins.");
}
}
我的要求是将 Cookie 的生命周期延长到 30 分钟,并将信息与返回值一起发送。请在这方面帮助我。
【问题讨论】:
标签: c# angularjs cookies asp.net-web-api asp.net-web-api2