1.登錄的時候根據用戶信息生成Tokencookie
var token = FormsAuthentication.Encrypt( new FormsAuthenticationTicket( 0, "UserName", DateTime.Now, DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", "userData1", "userData2" ), FormsAuthentication.FormsCookiePath)); / /放入Cookie var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, token); cookie.HttpOnly = true; HttpContext.Current.Response.Cookies.Add(cookie);
2.新增 一個Filter(取名規範 XXX+Attribute) :ActionFilterAttribute,重寫OnActionExecutingAsyncide
public override Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken) { var auth = actionContext.Request.Headers.Authorization; //記錄進入請求的時間 actionContext.Request.Properties[key] = DateTime.Now.ToBinary(); //TODO 權限,各類操做在這均可以去攔截.. return base.OnActionExecutingAsync(actionContext, cancellationToken); }
3. 獲取Token 中的信息spa
var user = HttpContext.Current.User.Identity.Name;