Skip to content

Cookie和Header处理

Henry edited this page Sep 10, 2019 · 1 revision

在HTTP应用中CookiesHeader处理是非常普遍的事情,一般情况下用于记录用户的持久化信息和验证等功能。组件都是通过控制器方法的行为来处理请求,但组件并没有提供相静态属性来区取,那访问这些信息需要怎样做呢?其实组件是支持直接在方法上定义一些请求上下文参数,只要定义了相关类型组件会自动传入。

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