ASP.NET Core Authentication系列(三)Cookie选项
前言
在本系列第一篇文章介绍了ASP.NET时代如何认证,并且介绍了如何通过web.config文件来配置Auth Cookie的选项。
第二篇文章介绍了如何使用Cookie认证,本文介绍几个常见的Cookie选项及其用法。
CookieBuilder
Cookie选项设置主要在AddCookie的CookieAuthenticationOptions.Cookie:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.Cookie.Name = "Name"; // 设置Cookie名称
        options.Cookie.Expiration = new TimeSpan(1, 0, 0); // 有效期1小时
        options.Cookie.Domain = ".91suke.com"; // 设置Cookie域名
    });
下面我们具体看一下CookieAuthenticationOptions.Cookie的结构:
namespace Microsoft.AspNetCore.Http
{
    public class CookieBuilder
    {
        public CookieBuilder();
        public virtual string Domain { get; set; }
        public virtual TimeSpan? Expiration { get; set; }
        public virtual bool HttpOnly { get; set; }
        public virtual bool IsEssential { get; set; }
        public virtual TimeSpan? MaxAge { get; set; }
        public virtual string Name { get; set; }
        public virtual string Path { get; set; }
        public virtual SameSiteMode SameSite { get; set; }
        public virtual CookieSecurePolicy SecurePolicy { get; set; }
        public CookieOptions Build(HttpContext context);
        public virtual CookieOptions Build(HttpContext context, DateTimeOffset expiresFrom);
    }
}
常用的几个选项:
- Domain:Cookie域名,只有相同域名(或子域名)才会携带Cookie
 - Expiration:Cookie有效期
 - Name:Cookie名称
 - Path:Cookie路径,只有访问路径下的子路径才会携带Cookie
 - HttpOnly:此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。
 
通过Configuration来设置Cookie选项
在实际开发中,一般不会对选项或配置项硬编码,因为开发环境与生产环境会有差异。这时候一般会通过配置文件来管理配置项,这样不需要重新编译。
在appsettings.json里添加配置项:
{
  // other configuration
  "Cookie":{
    "Name" : "TestCookie",
    "Path": "/"
  }
  // other configuration
}
然后在Startup里设置:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        Configuration.GetSection("Cookie").Bind(options.Cookie);
    });
效果图:

ASP.NET Core Authentication系列(三)Cookie选项的更多相关文章
- ASP.NET Core Authentication系列(四)基于Cookie实现多应用间单点登录(SSO)
		
前言 本系列前三篇文章分别从ASP.NET Core认证的三个重要概念,到如何实现最简单的登录.注销和认证,再到如何配置Cookie 选项,来介绍如何使用ASP.NET Core认证.感兴趣的可以了解 ...
 - ASP.NET Core Authentication系列(二)实现认证、登录和注销
		
前言 在上一篇文章介绍ASP.NET Core Authentication的三个重要概念,分别是Claim, ClaimsIdentity, ClaimsPrincipal,以及claims-bas ...
 - ASP.NET Core Authentication系列(一)理解Claim, ClaimsIdentity, ClaimsPrincipal
		
前言 首先我们来看一下在ASP.NET时代,Authentication是如何使用的.下面介绍的是System.Web.Security.FormsAuthentication: // 登录 Syst ...
 - 《ASP.NET Core 高性能系列》致敬伟大的.NET斗士甲骨文!
		
写在开始 三年前,曾写过一篇文章:从.NET和Java之争谈IT这个行业,当时遭到某些自认为懂得java就了不起的Javaer抨击, 现在可以致敬伟大的.NET斗士甲骨文了 (JDK8以上都需要收费, ...
 - 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇
		
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
 - 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之三 —— 配置
		
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
 - 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— 准备
		
==== 目录 ==== 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之一 —— 开篇 跟我学: 使用 fireasy 搭建 asp.net core 项目系列之二 —— ...
 - [铁人赛] ASP.NET Core 2 系列- 从头开始
		
来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽说名称沿用ASP.NET,但相较于ASP.NET确有许多架构上的差异,可说是除了名 ...
 - 在ASP.NET Core中添加的Cookie如果含有特殊字符,会被自动转义
		
我们知道在Cookie中有些字符是特殊字符,这些字符是不能出现在Cookie的键值中的. 比如"="是Cookie中用来分隔键和值的特殊字符,例如:Key01=Value01,表示 ...
 
随机推荐
- IIS目录浏览模式打开文件还是无法下载
			
写在前面的话 IIS已经设置目录浏览启用,且可以正常访问到文件,说明这些设置没问题,但是点击文件进行下载时,却提示无法下载,文件不存在等等,有的又可以,一顿操作后发现,原来是文件类型没有包含在MIME ...
 - Istio 运维实战系列(3):让人头大的『无头服务』-下
			
本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 失败的 Eur ...
 - 062 01 Android 零基础入门  01 Java基础语法 07 Java二维数组 01 二维数组应用
			
062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...
 - Java知识系统回顾整理01基础01第一个程序06Eclipse使用技巧
			
一.批量修改 ALT+SHIFT+R 二.快速输入主方法 1. 敲入main 2. alt+/ 三.快速输入System.out.println 1. 敲入syso 2. alt+/ 四.快速输入fo ...
 - Talk is cheap. Show me the code的由来
			
Date: Fri, 25 Aug 2000 11:09:12 -0700 (PDT) From:Linus Torvalds Subject Re: SCO: "thread creati ...
 - 深入了解如何构建您的第一个多语言ASP。NET MVC 5 Web应用程序
			
下载demo - 3.9 MB 介绍 这篇文章解释了如何创建一个简单的多语言ASP.NET MVC 5 Web应用程序.该应用程序将能够处理英语(美国),西班牙语和法语.英语将是默认语言.当然,扩展解 ...
 - 萌新学python
			
python python安装 进入官网http://www.python.org/download/ 下载 我下的是3.6.6大家可以根据需要下载(3.x和2.x不兼容请小心) 之后安装就可以了 p ...
 - Git本地已有项目关联远程仓库
			
情况: 本地已有项目 远程有个仓库 目的: 本地项目关联远程仓库 首先要把本地项目变成git管理的,也就是建立一个本地仓库,可以在项目目录下面使用git init命令初始化仓库,初始化成功之后会在仓库 ...
 - 警惕char类型直接相加
			
今天在写某个程序需要对两个数字字符串进行相加操作,比如字符串1:12345,字符串2:23456.需要1和2相加.2和3相加.就是两个字符相同位置的数进行相加. 这个一看很好完成,写一个for,然后取 ...
 - VS2019 配置opencv4.4
			
安装VS2019 参考:链接 下载opencv 链接 下载此时的最新版4.4.0 最后"上墙"下,不然很慢! 安装opencv 我的安装位置是:D:\soft\opencv\ins ...