分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

Asp.net Core 2.0 实现Cookie会话

发布时间:2023-09-06 01:14责任编辑:蔡小小关键词:Cookie

与1.0版本相比微软做了一些调整。详细请参考官方文档,我这里就讲2.0的吧

1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置

第一处在  public void Configure(IApplicationBuilder app, IHostingEnvironment env) 方法里

 设置  app.UseAuthentication();

public void Configure(IApplicationBuilder app, IHostingEnvironment env){ ?if (env.IsDevelopment()) ?{ ????app.UseDeveloperExceptionPage(); ?} ?else ?{ ????app.UseExceptionHandler("/Home/Error"); ?} ????//启用资源文件访问 ????app.UseStaticFiles(); ????//启用cookie会话 ????app.UseAuthentication(); ????app.UseMvc(routes => ????{ ???????routes.MapRoute( ???????name: "default", ???????template: "{controller=Home}/{action=Index}/{id?}"); ????});}

第二处 在public void ConfigureServices(IServiceCollection services) 方法里

“你的cookie名称”--一定要一致。

public void ConfigureServices(IServiceCollection services){ ??services.AddMvc(); ??//services.Configure<IISOptions>(option=>{ ??// option.AuthenticationDisplayName=""; ???//}); ??services.AddCoreServices(); ??//设置cookie信息 ??services.AddAuthentication("你的cookie名称").AddCookie("你的cookie名称",Options=>{ ??Options.LoginPath="/WeChat/Login";//设置登录页,还有其他配置就不作介绍了 ??});}

2.登录

2.0的登录作了调整 需要引用 using Microsoft.AspNetCore.Authentication; 此命名空间

public IActionResult Login(LoginViewModel model,string returnUrl = null){  //省略到数据库验证代码  ............  //设置声明,从数据库读取,设置角色之类,详情请科普 mvc的Identity声明认证  var claims = new List<Claim>() ??{ ??new Claim("userModel",JsonConvert.SerializeObject(model)), ?//new Claim("Role",model.RoleName), ??}; ?var userPrincipal = new ClaimsPrincipal(new ClaimsIdentity(claims, "声明的名称")); ??//登陆 ??awiat HttpContext.SignInAsync("你的cookie名称", userPrincipal,new ???????AuthenticationProperties ??{ ??ExpiresUtc = DateTime.UtcNow.AddMinutes(900)//过期时间 ??});  if(returnUrl==null)  { ?    //重定向到首页    return RedirectToAction("Index", "Home");  }  //重定向到初始请求页  return Redirect(returnUrl);}

  

3.退出

/// <summary>/// 退出/// </summary>public IActionResult Logout(){  await HttpContext.SignOutAsync("你的cookie名称");  //重定向到登录页 ???return RedirectToAction("Login", "Account");} 

好了,说完了。。。

Asp.net Core 2.0 实现Cookie会话

原文地址:http://www.cnblogs.com/abcde102978/p/7592708.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved