当前位置: 首页 > 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://www.yutouwan.com/news/50662/

相关文章:

  • 为什么凡科网做的网站无法搜索珠海室内设计学校
  • 沈阳网站建设推广平台长沙seo网站优化
  • 福州建设招聘信息网站星光影视园网站建设案例
  • dnf怎么做盗号网站安福网站制作
  • 广东海外建设监理有限公司官方网站河北建设工程信息网登陆
  • 登陆不了建设银行网站上海建设工程学校
  • html5手机网站开发网站内容及功能模块设计
  • 网站页脚包括什么网站建设项目成本估算表
  • 规则网站建设芜湖有哪些知名企业
  • 金坛建设局招标网站建设银行的网站用户名是什么问题
  • 广州网站建设价格怎么建立网站数据库
  • 国外的技术社区郑州seo顾问热狗网
  • 温州编程网站企业建站流程
  • 怎么做帖子网站青海省公路工程建设总公司网站
  • 印度喜欢用什么框架做外贸网站徐州丰县建设局网站
  • 备案个人网站做淘宝客做好网站建设对企业有什么作用
  • 网站建设哪家便群晖 wordpress是什么
  • 网站建设论文的摘要网站建设赣icp
  • 网站建设流程公司织梦企业黄页网站源码
  • 建筑工程网站建设方案可以做结构图的网站
  • 衡阳做网站公司动漫设计培训机构哪里好
  • wordpress 4.5 中文版网站的seo相关指标
  • 群辉做网站服务器配置网站建设课程
  • 做旅行社网站国内做的比较好的跨境电商网站
  • 注册公司在哪个网站最好的微网站建设公司
  • 体育建设网站教你如何做网络营销推广
  • 如何做好一个网站网站主题分析
  • 个人怎样免费建网站建筑公司网站封面图片
  • 移动网站建设查询做设计素材网站有哪些
  • 高端网站建设 aspx系统平台搭建