`

ASP.NET WebAPI HTTPS

 
阅读更多
第一步 创建受信任的根证书颁发机构
 
makecert.exe -n "CN=Development CA" -r -sv DevelopmentCA.pvk DevelopmentCA.cer
 
并将证书导入到证书管理,特别要注意的是必须是“证书-本地计算机”,而非当前用户
 
 
第二步 利用刚才创建的根证书来创建证书的pfx格式 ,第一条命令创建证书,第二条命令将转换为pfx格式并包含私钥,“123456”为私钥密码
 
makecert.exe -pe -n "CN=localhost" -a sha1 -sky exchange -eku 1.3.6.1.5.5.7.3.1 -ic DevelopmentCA.cer -iv developmentCA.pvk -sv SSLCert.pvk SSLCert.cer
 
pvk2pfx -pvk SSLCert.pvk -spc SSLCert.cer -pfx SSLCert.pfx -po 123456 
 
导入证书到本地计算机个人证书
 
第三步 生成客户端证书,执行命令之后客户端证书自动会添加到“证书-当前用户”个人证书里
 
makecert.exe -pe -ss My -sr CurrentUser -a sha1 -sky exchange -n "CN=ClientCertificatesTest"
-eku 1.3.6.1.5.5.7.3.2 -sk SignedByCA -ic DevelopmentCA.cer -iv DevelopmentCA.pvk
 
 
 
 
第四步 证书生成完毕后配置IIS,在网站中添加绑定选择https类型,SSL证书选择我们刚才创建的
 
 
第五步 更改SSL设置,我这里是设置了必须要求SSL,可根据自己的实际情况来选择
 
 
 
第六步  在程序中添加HTTPS过滤器,添加此特性的接口会先判断请求是否来自HTTPS
 
publicclassRequireHttpsAttribute : AuthorizationFilterAttribute
    {
        publicoverridevoid OnAuthorization(HttpActionContext actionContext)
        {
            if (actionContext.Request.RequestUri.Scheme != Uri.UriSchemeHttps)
            {
                actionContext.Response = newHttpResponseMessage(System.Net.HttpStatusCode.Forbidden)
                {                 
                    ReasonPhrase = "HTTPS Required"
                };
            }
            else
            {
                base.OnAuthorization(actionContext);
            }
        }
    }
 
 
最后我们测试下SSL是否生效
 
 
 publicstaticvoid Test()
        {
            var secure = newSecureString();
            foreach (char s in"password") //password为导出的证书安全密码
            {
                secure.AppendChar(s);
            }
            var handler = newWebRequestHandler();
            handler.ClientCertificateOptions = ClientCertificateOption.Manual;
            handler.UseProxy = false;

            string path = @"C:\test.pfx";
            var certificate = newX509Certificate2(path, secure);
            handler.ClientCertificates.Add(certificate);

            ServicePointManager
                .ServerCertificateValidationCallback +=
                (sender, cert, chain, sslPolicyErrors) => true;

            using (var client = newHttpClient(handler))
            using (var content = newMultipartFormDataContent())
            {
                var arg = 1;
                var url = string.Format(@"https://localhost:4438/api/test?arg={0}",arg);
                var result = client.PostAsync(url, content).Result.Content.ReadAsStringAsync();
                Console.WriteLine(string.Format("[{0}]", result.Result));
            }
        }
分享到:
评论

相关推荐

    ASP.NET Web API 2 Recipes(英文pdf)

    ASP.NET Web API 2 Recipes provides you with the code to solve a full range of Web API problems and question marks that you might face when developing line-of-business applications. ASP.NET Web API 2 ...

    ASP.NET WEB API 程序设计

    《ASP.NET Web API设计》依托ASP.NET Web API阐述API设计与开发的通用技术,是一本全面介绍如何构建真实可演化API的实践指南。本书共分三部分。第一部分介绍Web/HTTP和API开发的基础知识,介绍ASP.NET Web API,为...

    ASP.NET Web API 接收文件上传

    ASP.NET Web API 是微软开发的一个用于构建RESTful服务的框架,它可以轻松地为Web应用程序、移动设备和桌面应用提供数据接口。在ASP.NET Web API中处理文件上传是常见的需求,特别是当你需要允许用户通过Web界面提交...

    asp.net web api pdf

    ASP.NET Web API是微软开发的一个用于构建RESTful服务的框架,它基于ASP.NET技术栈,广泛应用于构建Web应用程序和服务,尤其是对于移动应用、浏览器插件和服务器端数据交互。本教程《ASP.NET Web API设计》深入浅出...

    《ASP.NET Web API 2框架揭秘》源码示例

    第1章 S101 一个简单的ASP.NET Web API应用 第2章 S201 通过路由实现请求地址与.aspx页面的映射 S202 基本路由注册 S203 在路由注册中指定约束 S204 针对现有物理文件的路由(关闭) S205 针对现有物理文件的...

    asp.net webapi2 基于token令牌的身份验证

    本文将深入探讨ASP.NET WebAPI2如何实现基于Token的令牌身份验证。 首先,我们需要理解Token的身份验证原理。这种机制下,用户登录后,服务器会生成一个唯一的Token,这个Token包含了一些关于用户的信息,经过加密...

    ASP.NET Web API 2 框架揭秘,带完整目录和源码

    本资源包含了该框架的详细揭秘以及完整的源代码,帮助开发者深入理解并实践ASP.NET Web API 2 的开发。 1. **RESTful架构**:ASP.NET Web API 2 遵循REST(Representational State Transfer)原则,通过HTTP方法...

    Asp.Net WebApi 上传文件方法(原生js上传和JQ ajax上传)

    在Asp.Net WebApi框架中,开发Web服务接口来处理文件上传是一项常见的任务。本教程将探讨两种不同的客户端上传方式:原生JavaScript和jQuery AJAX。这两种方法都可以与Asp.Net WebApi结合,实现用户友好的文件上传...

    ASP.NET WebAPI连接数据库的方法

    首先,需要了解的是WebAPI项目的基本创建流程,即通过Visual Studio创建一个新的*** Web Application (.NET Framework)项目,选择WebAPI作为项目模板。创建项目后,我们会在项目中看到一个名为ValuesController的...

    ASP.NET Web API

    在深入探讨ASP.NET Web API之前,我们先理解一下REST的基本概念。RESTful服务通过HTTP方法(GET、POST、PUT、DELETE等)来操作资源,并使用URI(Uniform Resource Identifier)作为资源的唯一标识。这种设计模式使得...

    ASP.NET Web API 高级编程(Pro ASP.NET Web API HTTP Web Services in ASP.NET)

    最新的Pro ASP.NET Web API HTTP Web Services in ASP.NET; 英文高清pdf; 2013年新书,学习ASP.NET Web API 现阶段最权威的一本专业教材; 前置技能:C#(掌握) , MVC(掌握或了解) ,数据库(掌握),HTML(掌握)...

    ASP.NET Web API 2 框架揭秘(完整带目录、源码版

    《ASP.NET Web API 2框架揭秘》一本注重实证的书,功能各异、多达120个可供下载的示例,大量最佳实践与实用性扩展,可直接用于解决实际开发问题。全新的学习方法,通过完整论证来实现彻底的融会贯通。本书可以作为讲...

    asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理办法

    asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理核心代码,详情: https://www.cnblogs.com/wgx0428/p/12315546.html

    ASP.NET Web API 2 框架揭秘(完整带目录、源码版)

    ASP.NET Web API 2框架揭秘》一本注重实证的书,功能各异、多达120个可供下载的示例,大量最佳实践与实用性扩展,可直接用于解决实际开发问题。全新的学习方法,通过完整论证来实现彻底的融会贯通。

    Asp.Net Web API 实例

    这个实例将涵盖几个核心概念,帮助你理解如何有效地使用Asp.Net Web API。 1. **更改默认路由表**:在Asp.Net Web API中,路由是决定HTTP请求如何映射到控制器和操作的方法。默认情况下,路由模板为"api/{...

    【ASP.NET编程知识】.net webapi接收xml格式数据的3种情况小结.docx

    在 ASP.NET 编程中,Web API 是一个框架,可以很容易构建达成了广泛的 HTTP 服务客户端,包括浏览器和移动设备。是构建 RESTful 应用程序的理想平台的 .NET 框架。在本文中,我们将主要介绍 .NET Web API 接收 XML ...

    ASP.NET WebAPI 接口自测工具(v4.0最新版)

    自己在研究ASP.NET WebAPI的过程中,为了方便自己调试,写了一个自测工具。 可以进行 application/json 协议的访问,也可以进行 application/x-www-form-urlencoded 协议的访问。 为了方便经常调试某个接口,可将 ...

    asp.net web API与Android交互使用

    在压缩包中的"android与webapi交互demo"可能包含了Android客户端的代码示例,展示了如何构造HTTP请求,发送到Web API,并处理返回的JSON数据。通过分析和运行这个示例,你可以更深入地理解Android与ASP.NET Web API...

Global site tag (gtag.js) - Google Analytics