使用证书创建request请求
之前写过的程序,都是普通http request。
这是第一次使用,记录下。
private static X509Certificate2 GetCert(string certId,StoreLocation location)
{
X509Certificate2 result = null;
X509Store certStore;
certStore = new X509Store(StoreName.My, location);
certStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadOnly); try
{
X509Certificate2Collection set = certStore.Certificates.Find(
X509FindType.FindByThumbprint, certId, true); if (set.Count > && set[] != null && set[].HasPrivateKey)
{
result = set[];
}
}
finally
{
certStore.Close();
} return result;
}
说明:
命名空间:
using System.Security.Cryptography.X509Certificates;
certID:
证书含有一个指纹(thumbprint),就是certId。在证书的detail中可以查看,注意他们之间的空格,很容易copy错误;
Location:
两个类别:
CurrentUser,LocalMachine。命令行mmc然后找到证书管理。
调用:
req = WebRequest.CreateHttp(url);
// add in the cert we'll authenticate with
req.ClientCertificates.Add(GetCert(thumbprint,StoreLocation.CurrentUser));
这样就创建了一个需要证书的请求。
使用证书创建request请求的更多相关文章
- Confluence 6 通过 SSL 或 HTTPS 运行 - 创建或请求一个 SSL 证书
在启用 HTTPS 之前,你需要一个有效的证书,如果你已经有了一个有效的证书,你可以直接跳过这个步骤,进入 step 2. 你可以创建一个自签名的证书,或者从信任的 Certificate Autho ...
- C#创建https请求并使用pfx证书
常规情况下创建Web请求,并获取请求数据的代码如下: WebRequest req = WebRequest.Create(url); req.Timeout = 15000; WebResponse ...
- C#request 请求响应
/// <summary> /// 提交POST请求 /// </summary> /// <param name="url">提交地址< ...
- Kubernetes学习之路(一)之概念和架构解析和证书创建和分发
1.Kubernetes的重要概念 转自:CloudMan老师公众号<每天5分钟玩转Kubernetes>https://item.jd.com/26225745440.html Clus ...
- springMVC中 request请求数据绑定到Controller入参 过程剖析
前言:Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众 ...
- IOS个人帐号推送证书创建
(IOS个人帐号推送证书制作所有步骤: 可以直接将产品推送证书和开发者推送证书一起制作到一个Identifier帐号下) 一. 首先需要创建一个id:有推送功能的(App ID Suffix)只有它才 ...
- iOS:开发者中心证书创建流程
一,首先点击开发者首页(https://developer.apple.com/)里面的Member Center.二,输入开发者账号和密码,点击sign in登录.三,点击Certificates, ...
- Servlet的学习之Request请求对象(3)
本篇接上一篇,将Servlet中的HttpServletRequest对象获取RequestDispatcher对象后能进行的[转发]forward功能和[包含]include功能介绍完. 首先来看R ...
- Servlet的学习之Request请求对象(2)
在上一篇<Servlet的学习(十)>中介绍了HttpServletRequest请求对象的一些常用方法,而从这篇起开始介绍和学习HttpServletRequest的常用功能. 使用Ht ...
随机推荐
- hdu1496 打表
通常可以想到直接四个for枚举,但是会超时.就算只用三个for也很危险.可以用打表的方法将时间复杂度降到O(n^2),注意到x1,x2,x3,x4的取值区间是关于零对称的,因此可以只考虑正整数部分,洗 ...
- JAVA在不确定具体 Annotation 类型时,获得注解参数
package com.lzw.demo; @SpringBootApplication public class DemoApplication { public static void ma ...
- 面试为什么需要了解JVM
匠心零度 转载请注明原创出处,谢谢! 说在前面 如果你经常注意面试题,你会发现现在面试题多多少少会含有jvm相关的面试题,之前也把一些jvm面试题汇总了下:面试题系列一,那么为什么现在面试需要了解或者 ...
- Android中Activity被系统会收前页面信息保存
1.重写onSaveInstanceState方法 protected void onSaveInstanceState(Bundle outState) { super.onSaveInstance ...
- Bind、Apply、Call三者的区别
1)bind与apply.call 的最大区别就是:bind不会立即调用,其他两个会立即调用 var fn = { _int: function(){return 3}, fun: function( ...
- js函数之四大调用模式
一.方法调用模式 当一个函数调用保存为一个对象的属性时我们称之为方法调用. var myObject = { value:0, increment:function(inc){ this.value ...
- Mycat 分布式事务的实现
引言:Mycat已经成为了一个强大的开源分布式数据库中间件产品.面对企业应用的海量数据事务处理,是目前最好的开源解决方案.但是如果想让多台机器中的数据保存一致,比较常规的解决方法是引入"协调 ...
- VxWorks 操作系统内存布局
在VxWorks操作系统过程中可能使用到的BootRom和VxWorks内核映像本身都可以存在两种方式:压缩的和非压缩的. 1.非压缩形式 如果没有进行压缩,则只有一次重定位,即从ROM到RAM只存在 ...
- CAN总线简介
CAN总线简介 个节点,通信波特率为5Kbps~1Mbps,在通信的过程中要求每个节点的波特率保持一致(误差不能超过5%),否则会引起总线错误,从而导致节点的关闭,出现通信异常.
- freemarker报错之十五
1.错误描述 六月 04, 2014 11:04:03 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...