在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]; }