目的
-
HTTP ,超文本传输协议,明文传输,无状态,服务器默认端口80
-
HTTPS ,具有SSL加密的HTTP,加密传输,需要申请ca证书,服务器默认端口443
虽然现在推行全站https 协议,但是https 比http 更耗费资源,所以一部分网站还是实行部分http ,一部分https ,本文讲的就是如何在Asp.Net MVC 项目中实现http 和https 的切换
步骤
1.如果项目需求是全站https的话,只需在控制器前使用特性RequireHttpsAttribute ,他的文档为表示一个特性,该特性用于强制通过 HTTPS 重新发送不安全的 HTTP 请求。 ,就是所有请求都转化为https链接.
2.如果我们要实现部分http,部分https,就要创建一个新的特性,使其继承RequireHttpsAttribute
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Diagnostics;
namespace Https.Controllers.extends
{
public class SwitchHttpsAttribute : System.Web.Mvc.RequireHttpsAttribute
{
2.http请求需要从web.config 中获取端口,所以要添加配置,HostName 为可选,HttpPost 为该项目的端口.
<appSettings>
<add key="HostName" value="localhost"/>
<add key="HttpPort" value="8066"/>
</appSettings>
3.接下来可以在控制器中使用新的特性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Https.Controllers.extends;
namespace Https.Controllers
{
public class HomeController : Controller
{
4.调试项目,即可验证是否完成对http 和https 的控制.
5.发布应用,部署到IIS上的时候一个项目记得要绑定两个域名,分别为http 和https .
目的
-
HTTP ,超文本传输协议,明文传输,无状态,服务器默认端口80
-
HTTPS ,具有SSL加密的HTTP,加密传输,需要申请ca证书,服务器默认端口443
虽然现在推行全站https 协议,但是https 比http 更耗费资源,所以一部分网站还是实行部分http ,一部分https ,本文讲的就是如何在Asp.Net MVC 项目中实现http 和https 的切换
步骤
1.如果项目需求是全站https的话,只需在控制器前使用特性RequireHttpsAttribute ,他的文档为表示一个特性,该特性用于强制通过 HTTPS 重新发送不安全的 HTTP 请求。 ,就是所有请求都转化为https链接.
2.如果我们要实现部分http,部分https,就要创建一个新的特性,使其继承RequireHttpsAttribute
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Diagnostics;
namespace Https.Controllers.extends
{
public class SwitchHttpsAttribute : System.Web.Mvc.RequireHttpsAttribute
{
2.http请求需要从web.config 中获取端口,所以要添加配置,HostName 为可选,HttpPost 为该项目的端口.
<appSettings>
<add key="HostName" value="localhost"/>
<add key="HttpPort" value="8066"/>
</appSettings>
3.接下来可以在控制器中使用新的特性
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Https.Controllers.extends;
namespace Https.Controllers
{
public class HomeController : Controller
{
4.调试项目,即可验证是否完成对http 和https 的控制.
5.发布应用,部署到IIS上的时候一个项目记得要绑定两个域名,分别为http 和https .
|
请发表评论