在HTTP應用中Cookies
和Header
處理是非常普遍的事情,一般情況下用於記錄用戶的持久化信息和驗證等功能。組件都是通過控制器方法的行為來處理請求,但組件並沒有提供相靜態屬性來區取,那訪問這些信息需要怎樣做呢?其實組件是支持直接在方法上定義一些請求上下文參數,只要定義了相關類型組件會自動傳入。
Cookies操作
public object SetCookie(string name, string value, IHttpContext context) { Console.WriteLine(context.Data); context.Response.SetCookie(name, value); return $"{DateTime.Now}{name}={value}"; } public string GetCookie(string name, IHttpContext context) { Console.WriteLine(context.Data); return $"{DateTime.Now} {name}= {context.Request.Cookies[name]}"; }
相關方法
public void SetCookie(string name, string value, string path, DateTime? expires = null) public void SetCookie(string name, string value, DateTime? expires = null) public void SetCookie(string name, string value, string path, string domain, DateTime? expires = null)
組件提供的cookie操作都明文的,暫不支持加密處理,所有加解密處理都在組件外部進行相關操作。
Header操作
public void SetHeader(string token,IHttpContext context) { context.Response.Header["Token"]=token; } public string GetHeader(string name, IHttpContext context) { return context.Request.Header[name]; }