.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

 

转载于:https://www.cnblogs.com/piscesLoveCc/p/7366418.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值