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

因网站开发需要浅谈天猫的电子商务网站建设

因网站开发需要,浅谈天猫的电子商务网站建设,郑州网站制作方案报价,长春网站建设外包上节IdentityServer4-客户端的授权模式原理分析#xff08;三#xff09;以对话形式#xff0c;大概说了几种客户端授权模式的原理#xff0c;这节重点介绍Hybrid模式在MVC下的使用。且为实现IdentityServer4从数据库获取User进行验证#xff0c;并对Claim进行权限设置打下… 上节IdentityServer4-客户端的授权模式原理分析三以对话形式大概说了几种客户端授权模式的原理这节重点介绍Hybrid模式在MVC下的使用。且为实现IdentityServer4从数据库获取User进行验证并对Claim进行权限设置打下基础第五节介绍。本节内容比较多且涉及一、二节的内容如有不懂可先熟悉一、二节知识。一、新建授权服务命名为AuthServer1新建Web API项目不用配置HTTPS不进行身份验证。设置成控制台方式运行端口设为5000。安装IdentityServer4包在Config.cs类中添加如下代码这里IdentityResource映射于那些关于用户信息的scope, ApiResource映射于API资源的scopes。 2打开Startup.cs在ConfigureServices里面调用AddIdentityServer来把Identity Server注册到ASP.NET Core的容器里面随后我调用了AddDeveloperSigningCredentials方法它会创建一个用于对token签名的临时密钥材料(但是在生产环境中应该使用可持久的密钥材料)3打开Configure方法把IdentityServer添加到ASP.NET Core的管道里。4然后下载登录用的UI: https://github.com/IdentityServer/IdentityServer4.Quickstart.UI把图中三个文件复制到AuthServer项目目录下。复制完后项目如下 二、新建MVC客户端命名为MvcClient1设置端口为5002。修改Start.cs的ConfigureServices方法为AddAuthentication方法来添加和配置身份认证中间件。这里使用Cookie作为验证用户的首选方式而DefaultScheme  Cookies这个Cookies字符串是可以任意填写的只要与后边的一致即可。但是如果同一个服务器上有很多应用的话这个Scheme的名字不能重复。DefaultChanllangeScheme设为oidc, 这个名字与后边配置OpenIdConnect的名字要一样. 当用户需要登陆的时候, 将使用的是OpenId Connect Scheme。AddCookie其参数是之前配置的DefaultScheme名称这配置了Cookie的处理者并让应用程序为我们的DefaultScheme启用了基于Cookie的身份认证。一旦ID Token验证成功并且转化为Claims身份标识后这些信息就将会保存于被加密的Cookie里。AddOpenIdConnect方法添加了对OpenID Connect流程的支持它让配置了用来执行OpenId Connect 协议的处理者。这个处理者会负责创建身份认证请求Token请求和其它请求并负责ID Token的验证工作。它的身份认证scheme就是之前配置的oidc它的意思就是如果该客户端的某部分要求身份认证的时候OpenID Connect将会作为默认方案被触发(因为之前设置的DefaultChallengeScheme是oidc, 和这里的名字一样)。SignInScheme和上面的DefaultScheme一致它保证身份认证成功的结果将会被保存在方案名为Cookies的Cookie里。Authority就是Identity Provider的地址。ClientId和Secret要与IdentityProvider里面的值一样。请求的Scope有openid和profile其实中间件默认也包括了这些scope但是写出来更明确一些。SaveTokenstrue表示允许存储从Identity Provider那里获得的tokens。 2修改Configure方法为3然后对HomeController加上身份验证。[Authorize]4再修改About的页面显示User的Claim信息。5现在可以运行AuthServer和MvcClient项目了。6输入Config文件中的TestUser的用户密码都设为123点击Login允许授权查看About页面显示了user相关的claim信息。7当然登出功能还没实现这里先实现登出。打开图中cshtml文件添加如下代码 if (User.Identity.IsAuthenticated){     lia asp-area asp-controllerHome asp-actionLogoutLogout/a/li}然后在HomeController控制器中添加Logout方法  public async Task Logout()        {            await HttpContext.SignOutAsync(Cookies);            await HttpContext.SignOutAsync(oidc);        }首先要清除本地的Cookie这个Cookie的名字要与之前配置的默认方案里的名字一致这一步就相当于登出MVC客户端。后一行代码的作用是跳转回到Identity Provider然后用户可以继续登出IDP, 也就是IDP会清除它的Cookie。8接着在AuthServer中的Quickstart/Account/AccountOptions实现自动跳转回登录页面。好了登录登出实现完了我们接着实现Claim权限限制。 三、为MVC客户端设置Claim身份验证1添加TestUser的Claim中Type为role2定义用户信息scope的role信息第一个参数是scope的名字第二个参数是scope的显示名第三个参数是它所包含的claim类型这里就是“role”。3然后还需要客户端允许请求“roles”这个scope 4MVC客户端的配置打开MVC的startup添加“roles”这个scopeoptions.Scope.Add(roles); 把role claim 映射到User.Claims里options.ClaimActions.MapUniqueJsonKey(role, role); role claim映射成ASP.NET Core MVC可以识别的角色Roles。options.TokenValidationParameters new TokenValidationParameters {NameClaimType JwtClaimTypes.GivenName,RoleClaimType JwtClaimTypes.Role };这样MVC中的role就可以识别User.Claims的role了。6最后在MvcClient项目HomeController中   About前加上role为admin身份验证。[Authorize(Roles admin)]然后运行先用test账号登录进行验证。发现点About页面没有权限进不去然后登出换admin账号登录User.Claims的role成功被MVC中角色role识别展示About页面。 这节主要介绍Hybrid在MVC下的使用包括User的登录登出和Claim对MVC的身份授权。然而这只是针对内存用户TestUser进行操作的显示实际项目中不能满足我们需求。下节将在本节的基础上介绍如何实现IdentityServer4从数据库获取User进行验证并对Claim进行身份验证。参考博客: https://www.cnblogs.com/cgzl/p/9268371.html源码地址https://github.com/Bingjian-Zhu/Mvc-HybridFlowV0.git相关文章从Client应用场景介绍IdentityServer4一IdentityServer4-EF动态配置Client和对Claims授权二IdentityServer4-客户端的授权模式原理分析三基于IdentityServer4 实现.NET Core的认证授权IdentityServer4与ocelot实现认证与客户端统一入口使用Dapper持久化IdentityServer4原文地址: https://www.cnblogs.com/FireworksEasyCool/p/10181525.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://wiki.neutronadmin.com/news/50662/

相关文章:

  • 免费个人网站建设大全做门户网站用什么服务器
  • 苏州工业园区规划建设局网站找南昌网站开发公司电话
  • 网站建设规划书摘要500字用iis搭建网站
  • 做羞羞的网站网站建设方案 doc
  • 网站做的好不好看什么在百度做个卷闸门网站怎么做
  • 个人网站模板源码下载企业门户平台设计方案
  • 做设计的网站广州市网络seo外包
  • 网站建设案例查询泉州专门做网站
  • 上海韵茵网站建设线上培训平台
  • seo网站优化方案案例朔州建设机械网站
  • 佛山网站免费制作软件工程学校排名
  • 网站群集约化建设通知图书馆网站建设需求分许
  • 医药网站源代码自建博客wordpress
  • 济南济南网站建设网站建设wordpress 语种顺序
  • discuz 网站备案信息代码安徽网页设计培训
  • 外贸工厂网站做seo多吗专业单位网站建设
  • 怎么做二手网站代理制作模板网站报价
  • 网站服务器租用选择郑州网站推广方法
  • 烟台网站建设-中国互联华龙网重庆
  • 互动平台下载找一个网站做优化分析
  • 四川建设安全生产监督管理局网站男科专科医院排名
  • linux tomcat 网站目录企业网站建设主要类型及选择
  • 乌市地区建设工程门户网站怎样做网站
  • 青岛大型网站建设电话营销
  • 网站优化 工具网站用户体验优化
  • wordpress 动漫网站万网域名指向网站
  • 张家港做网站的wordpress大学教程
  • 张掖交通建设投资有限责任公司网站设计师联盟官网效果图
  • 最简单的手机网站制作太仓网站优化
  • linux 搭建网站服务器网页设计与制作教程第二版教材