.NET Core 从1.1升级到2.0记录(Cookie中间件踩坑)
.NET Core 2.0 新时代
万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Standard 2.0的正式发布是.NET 开源跨平台的一个重大里程碑。
.NET Core 2.0 SDK下载地址:https://www.microsoft.com/net/download/core#/sdk
Visual Studio 2017 15.3下载地址:https://www.visualstudio.com/zh-hans/downloads/
更新ASP.NET Core 项目中的目标框架

更新ASP.NET Core Web项目中的Nuget依赖项
备注:删除之前的 Microsoft.* 依赖项,使用 Microsoft.AspNetCore.All。

.NET Core 2.0 更新Cookie中间件使用方法
备注:我这边当前项目单独使用的Cookie中间件,未结合Identity使用。
1:在ConfigureServices添加Cookie中间件,使用自定义Scheme(坑就在这里)
services.AddAuthentication(options=> {
options.DefaultChallengeScheme = CookieAuthenInfo.QwCmsWebCookieInstance;
options.DefaultSignInScheme = CookieAuthenInfo.QwCmsWebCookieInstance;
options.DefaultAuthenticateScheme = CookieAuthenInfo.QwCmsWebCookieInstance;
})
.AddCookie(CookieAuthenInfo.QwCmsWebCookieInstance, m =>
{
m.LoginPath = new PathString("/Account/Login");
m.AccessDeniedPath = new PathString("/Account/Denied");
m.LogoutPath = new PathString("/Account/Logout");
m.Cookie.Path = "/";
});
踩坑:报异常 No authenticationScheme was specified, and there was no DefaultChallengeScheme found.
特别感谢Zonciu提供的帮助。

2:在Configure使用Cookie中间件
app.UseAuthentication();
使用扩展类AuthenticationHttpContextExtensions
引入命名空间
using Microsoft.AspNetCore.Authentication;
新的扩展方法

使用方式
//登录
await HttpContext.SignInAsync(CookieAuthenInfo.QwCmsWebCookieInstance, userPrincipal,
new AuthenticationProperties
{
ExpiresUtc = DateTime.UtcNow.AddHours(12),
IsPersistent = true,
AllowRefresh = false
}); //退出
await HttpContext.SignOutAsync(CookieAuthenInfo.QwCmsWebCookieInstance);
AuthorizeAsync现在返回结果为AuthorizationResult
新的扩展方法

使用方式
var result = await HttpContext.AuthenticateAsync("xxxx");
if (result.Succeeded)
{
......
}
参考
1:[Draft] Auth 2.0 Migration announcement #1310
2:Migrating Authentication and Identity to ASP.NET Core 2.0
.NET Core 从1.1升级到2.0记录(Cookie中间件踩坑)的更多相关文章
- ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1
.NET Core 2.1 终于发布了, 赶紧升级一下. 一. 安装SDK 首先现在并安装 SDK(64-bit) 安装完毕后如果新建项目可以看到已经有2.1的选项了 二. 更新现有2.0项目到2.1 ...
- ASP.NET Core 2.0升级到3.0的变化和问题
前言 在.NET Core 2.0发布的时候,博主也趁热使用ASP.NET Core 2.0写了一个独立的博客网站,现如今恰逢.NET Core 3.0发布之际,于是将该网站进行了升级. 下面就记录升 ...
- 升级到tomcat7.0碰到的问题
今天把tomcat从6.0.18升级到7.0.25,发现了两个问题 问题1 java.lang.ClassNotFoundException: org.apache.catalina.mbeans.S ...
- CentOS6.5升级为CentOS7.0
CentOS6.5升级为CentOS7.0 CentOS6.5升级为CentOS7 升级前: [root@localhost ~]# cat /proc/version Linux version ...
- Asp.Net Core 2.0 项目实战(5)Memcached踩坑,基于EnyimMemcachedCore整理MemcachedHelper帮助类。
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- NET Core 1.1 版本项目和2.0环境下的项目开发注意事项
在NET Core 1.1开发下的项目最好不要随便把工具更新升级到2.0,这样最容易导致之前的.NETCore直接被升级不兼容早前版本 会引起项目无法启动在运行调试IIS express 时候直接一闪 ...
- NET Core 2.0使用Cookie认证实现SSO单点登录
NET Core 2.0使用Cookie认证实现SSO单点登录 之前写了一个使用ASP.NET MVC实现SSO登录的Demo,https://github.com/bidianqing/SSO.Sa ...
- centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版
zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...
- 快速升级Zabbix 5.0 版本
Zabbix 5.0 增加了很多新功能,如:垂直菜单.隐藏菜单.用户界面中的测试项目.限制代理检查.查找并替换预处理步骤 ES7支持等等...快来部署体验一把尝鲜体验 Zabbix 5.0 吧 ...
随机推荐
- 别人的Linux私房菜(3)主机规划与磁盘分区
磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...
- neo4j服务配置
第一步: 首先下载neo4j的community版本的 https://neo4j.com/download-center/ 第二步-添加环境变量: NEO4J_HOME = [文件路径] Pa ...
- 使用express框架和mongoose在MongoDB更新数据
update方法 modelName.update({需要替换的内容},{“$set”:{新的内容}},function(err,doc){}); User.update({userName:&qu ...
- ssh 认证
ssh 秘钥认证流程 ssh配置认证 基于口令(密码)的安全验证 [root@m01 ~]# ssh 10.0.0.41 hostname root@10.0.0.41's password: bac ...
- s5-1 CPU调度
基本概念 通过多道程序设计得到 CPU 的最高利用率 (CPU-- I/O 脉冲周期 - - 进程的执行包括进程在 CPU 上执行和等待 I/O ) 进程的执行以 CPU 脉冲开始,其后跟着 I/O ...
- ubuntu-server-12.04.2安装配置jdk
原文链接:http://blog.csdn.net/amymengfan/article/details/9958461 我选择的是离线安装,这需要先下载好jdk安装包(下载地址:http://www ...
- bat语法集【转】
源文链接:http://www.cnblogs.com/jiangzhichao/archive/2012/02/15/2353004.html 1 echo 和 @@ ...
- Silverlight4.0正式版(Silverlight4_Tools)离线安装
1.从微软的网站下载Silverlight4_Tools.exe(或者http://download.csdn.net/detail/taomanman/4522848)2.执行Silverlight ...
- Redis源码笔记-初步
目录 目录 1 1. 前言 2 2. 名词 2 3. dict.c 2 3.1. siphash算法 2 3.2. 核心函数 3 3.3. 核心宏 3 3.4. 核心结构体 3 3.4.1. dict ...
- BAT的真的适合创业团队吗?
平时在公司扮演一个逗比得角色和亲爱的们友好相处的我根本不愿意去思考这么深入的课题.本来在上一家公司就涉及的太深,心爱的一条小产品线被咔掉后心疼不已.只想深入研究技术不问世事了.怎奈何突然有一天说要招一 ...