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

临桂建设局安全股网站wordpress api 中文

临桂建设局安全股网站,wordpress api 中文,网站使用教程,重庆建设工程造价管理协会网站系列目录#xff1a; DotNetOpenAuth实践系列#xff08;源码在这里#xff09; DotNetOpenAuth是OAuth2的.net版本#xff0c;利用DotNetOpenAuth我们可以轻松的搭建OAuth2验证服务器#xff0c;不废话#xff0c;下面我们来一步步搭建验证服务器 本次搭建环境#xff…系列目录 DotNetOpenAuth实践系列源码在这里     DotNetOpenAuth是OAuth2的.net版本利用DotNetOpenAuth我们可以轻松的搭建OAuth2验证服务器不废话下面我们来一步步搭建验证服务器 本次搭建环境 .net4.5.1 DotNetOpenAuth v5.0.0-alpha3MVC5   一、环境搭建   1、新建一个空的VS解决方案     2、添加验证服务器项目项目选择MVC不要自带的身份验证     3、使用Nuget添加DotNetOpenAuth v5.0.0-alpha3 输入DotNetOpenAuth 安装DotNetOpenAuth v5.0.0-alpha3 添加完成后   二、编写DotNetOpenAuth 验证服务器关键代码实现功能   1、添加AuthorizationServerConfiguration.cs 这里的配置是为了添加方便管理其实可以不用这个类   1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Security.Cryptography.X509Certificates;5 using System.Web;6 7 namespace IdefavAuthorizationServer.Code8 {9 /// summary 10 /// 验证服务器配置 11 /// /summary 12 public class AuthorizationServerConfiguration 13 { 14 /// summary 15 /// 构造函数 16 /// /summary 17 public AuthorizationServerConfiguration() 18 { 19 TokenLifetime TimeSpan.FromMinutes(5); 20 } 21 22 /// summary 23 /// 签名证书 24 /// /summary 25 public X509Certificate2 SigningCertificate { get; set; } 26 27 /// summary 28 /// 加密证书 29 /// /summary 30 public X509Certificate2 EncryptionCertificate { get; set; } 31 32 /// summary 33 /// Token有效时间 34 /// /summary 35 public TimeSpan TokenLifetime { get; set; } 36 } 37 } 2、实现IClientDescription接口 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Web;5 using DotNetOpenAuth.Messaging;6 using DotNetOpenAuth.OAuth2;7 8 namespace IdefavAuthorizationServer.Code9 { 10 public class Client : IClientDescription 11 { 12 /// summary 13 /// 客户端名称client_id 14 /// /summary 15 public string Name { get; set; } 16 17 /// summary 18 /// 客户端类型 19 /// /summary 20 public int ClientType { get; set; } 21 22 /// summary 23 /// 回调URL 24 /// /summary 25 public string Callback { get; set; } 26 27 public string ClientSecret { get; set; } 28 29 30 Uri IClientDescription.DefaultCallback 31 { 32 get { return string.IsNullOrEmpty(this.Callback) ? null : new Uri(this.Callback); } 33 } 34 35 36 ClientType IClientDescription.ClientType 37 { 38 get { return (ClientType)this.ClientType; } 39 } 40 41 42 bool IClientDescription.HasNonEmptySecret 43 { 44 get { return !string.IsNullOrEmpty(this.ClientSecret); } 45 } 46 47 48 bool IClientDescription.IsCallbackAllowed(Uri callback) 49 { 50 if (string.IsNullOrEmpty(this.Callback)) 51 { 52 // No callback rules have been set up for this client. 53 return true; 54 } 55 56 // In this sample, its enough of a callback URL match if the scheme and host match. 57 // In a production app, it is advisable to require a match on the path as well. 58 Uri acceptableCallbackPattern new Uri(this.Callback); 59 if (string.Equals(acceptableCallbackPattern.GetLeftPart(UriPartial.Authority), callback.GetLeftPart(UriPartial.Authority), StringComparison.Ordinal)) 60 { 61 return true; 62 } 63 64 return false; 65 } 66 67 68 bool IClientDescription.IsValidClientSecret(string secret) 69 { 70 return MessagingUtilities.EqualsConstantTime(secret, this.ClientSecret); 71 } 72 73 74 } 75 } 3、实现IAuthorizationServerHost接口 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Security.Cryptography;5 using System.Web;6 using DotNetOpenAuth.Messaging.Bindings;7 using DotNetOpenAuth.OAuth2;8 using DotNetOpenAuth.OAuth2.ChannelElements;9 using DotNetOpenAuth.OAuth2.Messages; 10 11 namespace IdefavAuthorizationServer.Code 12 { 13 public class IdefavAuthorizationServerHost : IAuthorizationServerHost 14 { 15 /// summary 16 /// 配置 17 /// /summary 18 private readonly AuthorizationServerConfiguration _configuration; 19 20 /// summary 21 /// 构造函数 22 /// /summary 23 /// param nameconfig/param 24 public IdefavAuthorizationServerHost(AuthorizationServerConfiguration config) 25 { 26 if (config ! null) 27 _configuration config; 28 } 29 30 /// summary 31 /// Token创建 32 /// /summary 33 /// param nameaccessTokenRequestMessage/param 34 /// returns/returns 35 public AccessTokenResult CreateAccessToken(IAccessTokenRequest accessTokenRequestMessage) 36 { 37 var accessToken new AuthorizationServerAccessToken(); 38 accessToken.Lifetime _configuration.TokenLifetime;//设置Token的有效时间 39 40 // 设置加密公钥 41 accessToken.ResourceServerEncryptionKey 42 (RSACryptoServiceProvider)_configuration.EncryptionCertificate.PublicKey.Key; 43 // 设置签名私钥 44 accessToken.AccessTokenSigningKey (RSACryptoServiceProvider)_configuration.SigningCertificate.PrivateKey; 45 46 var result new AccessTokenResult(accessToken); 47 return result; 48 } 49 50 public IClientDescription GetClient(string clientIdentifier) 51 { 52 // 这里需要去验证客户端发送过来的client_id 53 if (string.Equals(clientIdentifier, idefav, StringComparison.CurrentCulture))// 这里为了简明起见没有使用数据库 54 { 55 var clientnew Client 56 { 57 Name idefav, 58 ClientSecret 1, 59 ClientType 1 60 }; 61 return client; 62 } 63 throw new ArgumentOutOfRangeException(clientIdentifier); 64 } 65 66 public bool IsAuthorizationValid(IAuthorizationDescription authorization) 67 { 68 return true; 69 } 70 71 public AutomatedUserAuthorizationCheckResponse CheckAuthorizeResourceOwnerCredentialGrant(string userName, string password, 72 IAccessTokenRequest accessRequest) 73 { 74 throw new NotImplementedException(); 75 } 76 77 public AutomatedAuthorizationCheckResponse CheckAuthorizeClientCredentialsGrant(IAccessTokenRequest accessRequest) 78 { 79 AutomatedUserAuthorizationCheckResponse response new AutomatedUserAuthorizationCheckResponse(accessRequest, true, test); 80 return response; 81 } 82 83 public ICryptoKeyStore CryptoKeyStore { get; } 84 public INonceStore NonceStore { get; } 85 86 87 } 88 } 4、实现OAuthController 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Threading.Tasks;5 using System.Web;6 using System.Web.Mvc;7 using DotNetOpenAuth.Messaging;8 using DotNetOpenAuth.OAuth2;9 using IdefavAuthorizationServer.Code; 10 11 namespace IdefavAuthorizationServer.Controllers 12 { 13 public class OAuthController : Controller 14 { 15 private readonly AuthorizationServer authorizationServer 16 new AuthorizationServer(new IdefavAuthorizationServerHost(Common.Configuration)); 17 18 public async TaskActionResult Token() 19 { 20 var response await authorizationServer.HandleTokenRequestAsync(Request); 21 return response.AsActionResult(); 22 } 23 } 24 } 5、初始化AuthorizationServerConfiguration 这里采用Windows签名证书 放到项目中 制作证书事注意要加上-a sha1  -sky exchange   到此基本代码就写完了现在说说要注意的地方OAuth2默认设置的请求是要求SSL的也就是必须是https//localhost:1111/OAuth/Token然后我们现在不需要使用SSL加密请求更改一下WebConfig文件 在WebConfig里面设置成如图中那样就可以不用https访问了   6、我们F5运行项目 使用Post工具发送Post请求访问 http://localhost:53022/OAuth/token  Body参数 1 client_id:idefav 2 client_secret:1 3 grant_type:client_credentials 请求结果   这样我们就拿到了access_token通过这个access_token我们就可以访问资源服务器了       更新 OAuthController代码添加内容类型 1 using System.Collections.Generic;2 using System.Linq;3 using System.Threading.Tasks;4 using System.Web;5 using System.Web.Mvc;6 using System.Web.Script.Services;7 using DotNetOpenAuth.Messaging;8 using DotNetOpenAuth.OAuth2;9 using IdefavAuthorizationServer.Code; 10 11 namespace IdefavAuthorizationServer.Controllers 12 { 13 public class OAuthController : Controller 14 { 15 private readonly AuthorizationServer authorizationServer 16 new AuthorizationServer(new IdefavAuthorizationServerHost(Common.Configuration)); 17 18 public async TaskActionResult Token() 19 { 20 var response await authorizationServer.HandleTokenRequestAsync(Request); 21 Response.ContentType response.Content.Headers.ContentType.ToString(); 22 return response.AsActionResult(); 23 } 24 } 25 }   鉴于有人不知道Windows签名制作下篇我们一起来看看如何制作一个认证服务器可以使用的签名证书转载于:https://www.cnblogs.com/idefav2010/p/DotNetOpenAuth.html
http://www.huolong8.cn/news/26500/

相关文章:

  • 陕西企业网站建设哪家专业网站建设与网页设计开题报告
  • 非法期货做网站网站建设在国内外有何趋势
  • 汕头公司建站模板做网站汉狮网络
  • 做网站 博客信息系统开发过程
  • 欧美设计网站本溪市做网站公司
  • 凤岗镇网站建设公司购物网站界面设计策划
  • ppt模板下载的网站广州企业网站设计方案
  • 福州免费做网站成都哪里做网站备案
  • 网站建设平台价位济南网站设计制作要多久
  • 淮安建设企业网站网页设计的流行趋势有哪些
  • 下载搭建网站软件企业网站建设合同范本免费
  • 昆明网站建设公司小程序云南省建设厅网站发文
  • 百度一下百度网站wordpress 酷炫的插件
  • 饮食类网站wordpress配置微信支付
  • 四川建设学网官方网站登录网站制作公司套路
  • 网站 公司形象深圳网站建设怎么选择
  • 公司要做网站市场调研表模板
  • 网站技术培训班做网站都需要买什么
  • 阿里云网站建设和部署框架虚拟主机和服务器有什么区别
  • 网站建设服务费怎么做会计分录html门户网站开发源代码
  • 建好的网站能修改吗网站栏目下拉菜单
  • 上海 食品网站设计WordPress最强大的主题
  • 防止网站扫描什么网站可以自己做字
  • 国际网站怎么注册免费的惠通网站建设
  • 怎样制作微信网站湘西网站制作
  • 宁波市城市建设档案馆网站沈阳网站app制作
  • 常州网站推广平台微网站制作需要多少钱
  • 网站首次备案 多久太原网站建设解决方案
  • wordpress网站标签logo网站注册账号
  • 网站怎么做到秒收录wordpress如何修改字体大小