在ASP.NET Core 2.0中使用CookieAuthentication
2017-06-26 07:18
671 查看
在ASP.NET Core中关于Security有两个容易混淆的概念一个是Authentication(认证),一个是Authorization(授权)。而前者是确定用户是谁的过程,后者是围绕着他们允许做什么,今天的主题就是关于在ASP.NET Core 2.0中如何使用CookieAuthentication认证。
在ASP.NET Core 2.0中使用CookieAuthentication跟在1.0中有些不同,需要在ConfigureServices和Configure中分别设置,前者我们叫注册服务,后者我们叫注册中间件
在上面的services.AddCookieAuthentication中没有任何参数,系统会为某些属性指定默认值
根据微软的命名规范在ConfigureServices统一使用Add***,在Configure统一使用Use***
登陆代码
登出代码
原文地址:http://www.cnblogs.com/bidianqing/p/6870163.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
在ASP.NET Core 2.0中使用CookieAuthentication跟在1.0中有些不同,需要在ConfigureServices和Configure中分别设置,前者我们叫注册服务,后者我们叫注册中间件
public void ConfigureServices(IServiceCollection services){ services.AddCookieAuthentication(); services.AddMvc(options => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); // 因为是后台系统,必须登陆以后才能操作 options.Filters.Add(new AuthorizeFilter(policy)); }); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); // 使用Authentication中间件 app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }
在上面的services.AddCookieAuthentication中没有任何参数,系统会为某些属性指定默认值
public static class CookieAuthenticationDefaults { /// <summary> /// The default value used for CookieAuthenticationOptions.AuthenticationScheme /// </summary> public const string AuthenticationScheme = "Cookies"; /// <summary> /// The prefix used to provide a default CookieAuthenticationOptions.CookieName /// </summary> public static readonly string CookiePrefix = ".AspNetCore."; /// <summary> /// The default value used by CookieAuthenticationMiddleware for the /// CookieAuthenticationOptions.LoginPath /// </summary> public static readonly PathString LoginPath = new PathString("/Account/Login"); /// <summary> /// The default value used by CookieAuthenticationMiddleware for the /// CookieAuthenticationOptions.LogoutPath /// </summary> public static readonly PathString LogoutPath = new PathString("/Account/Logout"); /// <summary> /// The default value used by CookieAuthenticationMiddleware for the /// CookieAuthenticationOptions.AccessDeniedPath /// </summary> public static readonly PathString AccessDeniedPath = new PathString("/Account/AccessDenied"); /// <summary> /// The default value of the CookieAuthenticationOptions.ReturnUrlParameter /// </summary> public static readonly string ReturnUrlParameter = "ReturnUrl"; }
根据微软的命名规范在ConfigureServices统一使用Add***,在Configure统一使用Use***
登陆代码
public async Task<IActionResult> LoginDo() { var user = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, "bob") }, CookieAuthenticationDefaults.AuthenticationScheme)); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user, new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTimeOffset.Now.Add(TimeSpan.FromDays(180)) }); return Redirect("/"); }
登出代码
public async Task<IActionResult> Logout() { await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); return Redirect("/"); }
原文地址:http://www.cnblogs.com/bidianqing/p/6870163.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
相关文章推荐
- ASP.NET Core2.0 使用VSCode 版本1.13.1工具 开发控制台运行出现中文乱码问题及解决方法
- ASP.NET Core 2.0 使用支付宝PC网站支付
- ASP.NET Core 2.0 使用支付宝PC网站支付实现代码(转)
- 使用 Asp.net core 2.0 + Angular 4 构建车辆管理的Web应用程序
- ASP.NET Core 2.0 使用支付宝PC网站支付实现代码
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
- ASP.NET Core 2.0使用Cookie认证实现SSO单点登录
- ASP.NET Core 2.0 使用支付宝PC网站支付
- 在ASP.NET Core 2.0中使用MemoryCache
- ASP.NET Core 2.0 使用支付宝PC网站支付
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- asp.net core 2.0 Cookie 使用
- .Net Core 2.0生态(3):ASP.NET Core 2.0 特性介绍和使用指南
- ASP.NET Core 2.0 特性介绍和使用指南
- 在ASP.NET CORE 2.0使用SignalR技术
- 如何在ASP.NET Core 2.0中使用Razor页面
- Asp.Net Core 2.0 之旅---AutoFac IOC容器的使用教程
- Asp.Net Core 2.0 项目实战(6)Redis配置、封装帮助类RedisHelper及使用实例
- 把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目
- 在ASP.NET CORE 2.0使用SignalR技术