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

做个简单的导航网站微信营销软件群发

做个简单的导航网站,微信营销软件群发,app开发报价公司,wordpress 很慢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.hotlads.com/news/5083.html

相关文章:

  • 宁波网站建设制作方法网络营销推广策划方案
  • 网站域名找回密码 用户名搜索引擎营销就是seo
  • 云服务器做网站好吗百度指数网站
  • 阿里云做电脑网站网址关键词查询网站
  • 小网站推广个人接外包项目平台
  • 长沙的企业网站建设seo关键字优化技巧
  • 建设网站要求哪里备案属于免费的网络营销方式
  • 杭州软件测试培训机构排名seo优化方案策划书
  • 部门网站管理建设工作汇报专业的网站优化公司
  • 如何做电影网站 去哪里找片源网络安全有名的培训学校
  • ai做图标教程网站seo是什么姓
  • 台州网站怎么推广广州seo网站管理
  • 福建省建设厅网站 保证金打开百度搜索引擎
  • 长沙市天心建设局网站cpa广告联盟平台
  • 设计师可以做兼职的网站有哪些东莞百度推广排名优化
  • 做网站为什么要用固定ip本网站三天换一次域名
  • 南京做网站开发 待遇站长之家域名信息查询
  • 建一个自己用的网站要多少钱seo怎么收费seo
  • 企业做不做网站的坏处富阳网站seo价格
  • 做外贸建网站需要推广吗seo培训师
  • 网站首页优化的目的google搜索优化方法
  • 大连坐网站盐城seo优化
  • 小型网站建设西安百度关键词优化
  • 静安企业网站建设爱站工具网
  • 全球最大的电商平台电商运营seo
  • 橙色企业网站模板100个裂变营销案例
  • 广东企业建网站网站快速排名优化
  • 怎么看网站是不是做竞价seo站长工具查询
  • 南宁市建设工程信息网长沙seo免费诊断
  • 做网站需要备案几次长尾关键词排名工具