当前位置: 首页 > news >正文

南昌微信网站开发公司企业运营实训报告

南昌微信网站开发公司,企业运营实训报告,四字母域名建设网站可以吗,怎么做美食团购网站ShenNiusModularity项目有两套启动方式,一种是ShenNius.Admin.Mvc项目启动,该项目为MVC模式,带前台页面,也有后台服务,另一种是ShenNius.Admin.Hosting,该项目启动后仅提供后台服务,供其它前台项…

  ShenNiusModularity项目有两套启动方式,一种是ShenNius.Admin.Mvc项目启动,该项目为MVC模式,带前台页面,也有后台服务,另一种是ShenNius.Admin.Hosting,该项目启动后仅提供后台服务,供其它前台项目调用。本文学习并分析ShenNius.Admin.Mvc项目中的身份认证方式。
  ShenNiusModularity项目启动时,在ShenNius.Admin.Mvc项目的Program文件内,调用ShenniusAdminMvcModule,其内部又依赖ShenNius.Admin.API项目的ShenniusAdminApiModule类,在该类中,启动时根据启动项目中的JwtSetting设置判断是否启动jwt身份认证。ShenNius.Admin.Mvc项目的appsettings.json没有相关jwt设置,因此采用基于Cookie的身份认证方式,主要代码如下所示:

 context.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o =>{o.Cookie.Name = "ShenNius.Admin.Mvc";o.LoginPath = new PathString("/sys/user/login");o.LogoutPath = new PathString("/sys/user/Logout");o.Cookie.HttpOnly = true;});

  在Admin.Areas.Sys.Controllers.UserController的Login函数内,当通过用户验证后,会将用户名称、上次登录时间、电话、邮箱、是否管理员等信息保存为ClaimsPrincipal对象实例内,并调用HttpContext.SignInAsync函数将信息保存到Cookie内。

var identity = new ClaimsPrincipal(new ClaimsIdentity(new[]{new Claim(JwtRegisteredClaimNames.Sid,result.Id.ToString()),new Claim(ClaimTypes.Name,result.LoginName),new Claim(ClaimTypes.WindowsAccountName,result.LoginName),new Claim(ClaimTypes.UserData,result.LastLoginTime.ToString()),new Claim(ClaimTypes.MobilePhone,result.Mobile),new Claim(ClaimTypes.Email,loginModel.Email),new Claim("TrueName",result.TrueName),new Claim("TenantId",result.TenantId.ToString()),new Claim("IsAdmin",isAdmin.ToString())}, CookieAuthenticationDefaults.AuthenticationScheme));
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, identity, new AuthenticationProperties
{ExpiresUtc = DateTime.UtcNow.AddHours(24),IsPersistent = true,AllowRefresh = false
});

  项目采用接口IShenNiusContext及其实现类ShenNiusContext获取当前登录用户信息,其内部实现也是从HttpContext.User属性中获取用户名等信息,在此不再赘述,有兴趣的可以查看ShenNius.Infrastructure.ShenNiusContext源码。该接口在项目启动时已注册服务。

context.Services.AddScoped<IShenNiusContext, ShenNiusContext>();

参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity

http://www.yayakq.cn/news/527488/

相关文章:

  • 南宁网站建设lilkj阿里云备案多个网站吗
  • 关于域名用于非网站用途的承诺书个人建设什么网站
  • html5手机移动app网站制作教程武夷山网站推广
  • 北京网站建设推做网站的费用是多少钱
  • 做那种事免费网站电商网站建设过程
  • 免费的网站建设一般多少钱学生html美食静态网页代码
  • delphi网站开发轻蜂加速器
  • 网站内部推广做一个响应网站多少钱
  • 网站开发那家好如何网站专题策划
  • 连山建设局网站网上销售哪些平台免费
  • 建设网站要注意什么招工 最新招聘信息怎么写
  • 建设企业网站费用甘肃两学一做网站
  • 做一家开发网站的公司简介小程序推广是什么工作
  • 优秀设计作品网站仓储网站建设
  • 建设网站如何收费有什么推广网站
  • 网站建设招标方案模板个人免费建网站
  • 普斯泰网站建设房地产销售现状
  • 网站建设方案范文怎么做链接
  • 建设网站企业网银登录网站搭建报价
  • cn结尾的网站 做外贸网站建设推广加盟
  • 网站前台设计工具wordpress绝对路径图片不显示
  • 网站建设 任务分配表专业优化网站建设
  • 校园网站建设意义开放平台是干什么的
  • 做策划的网站wordpress 会员等级
  • 微信网站欣赏广州室内设计培训学校
  • 网站系统开发流程c 做asp.net网站
  • asp源码自助建站广东建的电商网站叫啥
  • 医院网站建设 南宁有谁可以做网站寄生虫
  • 公司网站建设需要资质外贸营销软件
  • 导购网站如何做淘宝客网站建设需要哪些工具与知识