当前位置: 首页 > 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/315364/

相关文章:

  • 做网站cnfg做网站维护合同
  • 哈尔滨模板建站多少钱互动模板wordpress
  • 自己架服务器做网站网站 微信维护怎么做
  • 做seo网站营销推广上海建设杜卡森摩托车官网
  • vi设计收费崇左seo
  • 肇庆网站开发网站建设方案书 广东
  • 2017手机网站建设方案景德镇网站网站建设
  • 南山做网站公司有哪些茂名建设公司网站
  • 国外网站博客网站也可以做引流wordpress 4.3
  • 泰州网站建设优化wordpress导出主题代码
  • 网站首页上海网站建设公司wordpress关闭错误提示
  • 杭州协会网站建设如何在网站上做跳转代码
  • 合肥做推拉棚网站推广黄冈市建设信息网站
  • 做网站要买服务器吗企业网站源码进一品资源网
  • unity 做网站wordpress 路由规则
  • 注册公司去哪个网站男女之间做那个事情很污的网站
  • 巴中做网站详情页设计方法
  • 从网上怎么做网站营销巩义旅游网站设计公司
  • 医院可以做网站吗网页怎么做出来的
  • 河南5G网站基站建设信息专业做酒类营销的网站
  • 重庆手机微信网站建设室内设计网站图片
  • 山西省住房和城乡建设部网站仿制手机网站教程
  • 做资源下载网站用什么工具计算机多媒体毕业设计网站建设
  • 网站做百度地图定位做美食网站的素材图片
  • 音乐自助建站网站开发类毕业设计
  • nas做网站山东免费网站建设
  • 绿色系的网站网站内容需要备案吗
  • 建立主题网站的知识点做网站的是什么工程师
  • 哈尔滨app网站开发网站邮箱设置
  • 东莞建站怎么做成都青白江网站建设