国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù)

這篇具有很好參考價(jià)值的文章主要介紹了HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

HttpSelfHostConfiguration可以開啟自宿主服務(wù),即監(jiān)聽本地端口,然后發(fā)布對應(yīng)的api服務(wù),其實(shí)就是個(gè)webapi項(xiàng)目,但是可以不用掛載在IIS上,程序直接運(yùn)行就可以

上次做完了HttpSelfHostConfiguration后,有要求,需要讓自宿主服務(wù)支持https協(xié)議,這就麻煩了
要知道https可是需要證書啥的,剛好研究了一段時(shí)間,再同事的幫助下也算是做出來了,下來貼點(diǎn)教程數(shù)據(jù)上來
整個(gè)注冊流程中需要用到IIS來生成證書

  • 注冊安全證書
    在IIS中選擇服務(wù)器證書
    HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù),.net,https,數(shù)據(jù)庫
    依次點(diǎn)擊 創(chuàng)建自簽名證書->輸入名稱->確定保存
    HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù),.net,https,數(shù)據(jù)庫
    拷貝證書的指紋
    點(diǎn)擊新增的證書信息,拷貝指紋數(shù)據(jù),用以備用
    HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù),.net,https,數(shù)據(jù)庫
  • 使用cmd命令 刪除、注冊證書

使用https需要 要用CMD命令 將證書的指紋和 系統(tǒng)的端口、軟件的GUID進(jìn)行綁定
這樣子 HttpSelfHostConfiguration才能啟動(dòng)對應(yīng)端口的https服務(wù),當(dāng)然證書肯定也是用的 咱們新創(chuàng)建的證書嘍,這一步 我略去,僅把指令貼出來,因?yàn)槲液竺鏁么a去執(zhí)行 這個(gè)cmd命令
先執(zhí)行刪除,在執(zhí)行添加注冊,防止端口已經(jīng)被其他證書占用了

// port=端口,pfx=證書指紋 ,guid=當(dāng)前程序GUID
netsh http delete sslcert ipport=0.0.0.0:port
netsh http add sslcert ipport=0.0.0.0:port certhash=pfx appid={Guid}
  • 代碼中啟動(dòng) https服務(wù)
using Newtonsoft.Json;
using Robot2.OpenApi.V2.Filter;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.ServiceModel.Channels;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Cors;
using System.Web.Http.SelfHost;
using System.Web.Http.SelfHost.Channels;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string url = string.Format("https://localhost:20101");
                string port = "20101";
                string pfx = "e063bb5f4578a211fab76439e38cc93d92e56286";
                string guid = "78a9b36e-51e3-44e9-9ee0-abfd6d0e6b8d";
                List<string> cmds = new List<string>() {
                            $"/c netsh http delete sslcert ipport=0.0.0.0:{port}",
                            $"/c netsh http add sslcert ipport=0.0.0.0:{port} certhash={pfx} appid="+"{"+guid+"}",
                        };
                foreach (string cmd in cmds)
                {
                    var process = new Process()
                    {
                        StartInfo = new ProcessStartInfo
                        {
                            FileName = "cmd.exe",
                            Arguments = cmd,
                            RedirectStandardOutput = true,
                            UseShellExecute = false,
                            CreateNoWindow = false
                        }
                    };
                    process.Start();
                    process.WaitForExit();
                }
                //var config = new HttpSelfHostConfiguration(url);
                var config = new ExtendedHttpSelfHostConfiguration(url);//使用Https
                config.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
                config.Formatters.Add(new System.Net.Http.Formatting.JsonMediaTypeFormatter());
                HttpSelfHostServer _hostServer = new HttpSelfHostServer(config);
                config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
                config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, PUT, DELETE, OPTIONS") { SupportsCredentials = true });
                config.Filters.Add(new AuthorFilter());
                config.Filters.Add(new ExceptionFilter());
                config.Routes.MapHttpRoute(
                 name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}",
                defaults: new
                {
                    controller = "Home",
                    action = "Index",
                    id = RouteParameter.Optional
                });


                _hostServer.OpenAsync().Wait();
                Console.WriteLine("服務(wù)端口打開成功");
            }
            catch (Exception ex)
            {
                Console.WriteLine("服務(wù)端口打開異常:" + JsonConvert.SerializeObject(ex));
            }
            Console.ReadKey();
        }

        public class ExtendedHttpSelfHostConfiguration : HttpSelfHostConfiguration
        {
            public ExtendedHttpSelfHostConfiguration(string baseAddress) : base(baseAddress) { }
            public ExtendedHttpSelfHostConfiguration(Uri baseAddress) : base(baseAddress) { }

            protected override BindingParameterCollection OnConfigureBinding(HttpBinding httpBinding)
            {
                if (BaseAddress.ToString().ToLower().Contains("https://"))
                {
                    httpBinding.Security.Mode = HttpBindingSecurityMode.Transport;
                }

                return base.OnConfigureBinding(httpBinding);
            }
        }
    }
}

執(zhí)行https服務(wù)器下的controller方法成功(具體我這個(gè)Controller怎么寫的,大家可以參考我上一篇的
HttpSelfHostConfiguration文章
HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù),.net,https,數(shù)據(jù)庫
特別提醒,https和http請求本身存在證書校驗(yàn)的問題,我用的postman請求的數(shù)據(jù),postman默認(rèn)是不支持自簽名證書的,需要設(shè)置下 ,設(shè)置的鏈接如下
https://blog.csdn.net/q7w8e9r4/article/details/132140205

遇到 “postman Self-signed SSL certificate blocked” 錯(cuò)誤是因?yàn)?Postman 檢測到你正在嘗試訪問一個(gè)使用自簽名 SSL 證書的網(wǎng)站,并且默認(rèn)情況下,Postman 會阻止對這樣的網(wǎng)站進(jìn)行請求。 要解決這個(gè)問題,你可以按照以下步驟進(jìn)行操作:
1.打開 Postman:打開 Postman 應(yīng)用程序。
2.設(shè)置 SSL 證書驗(yàn)證:點(diǎn)擊左上角的 “Settings”(設(shè)置)按鈕,然后選擇 “Settings”(設(shè)置)選項(xiàng)。
3.禁用 SSL 證書驗(yàn)證:在 “Settings”(設(shè)置)頁面的左側(cè)導(dǎo)航欄中,選擇 “General”(常規(guī))選項(xiàng)。在右側(cè)的 “SSL certificate verification”(SSL 證書驗(yàn)證)部分,將開關(guān)切換為關(guān)閉狀態(tài)。
4.重新發(fā)送請求:回到 Postman 的主界面,重新發(fā)送你的請求。 請注意,禁用 SSL 證書驗(yàn)證可能會導(dǎo)致你的請求不再驗(yàn)證服務(wù)器的證書,從而可能存在安全風(fēng)險(xiǎn)。因此,請確保你對要訪問的網(wǎng)站的可信度有所了解,并仔細(xì)考慮在禁用 SSL 證書驗(yàn)證之前的安全性。 如果你仍然希望進(jìn)行 SSL 證書驗(yàn)證,但遇到了自簽名 SSL 證書的問題,你可以考慮導(dǎo)入服務(wù)器的自簽名證書到 Postman 中。具體步驟如下:
5.獲取自簽名 SSL 證書:從服務(wù)器管理員或網(wǎng)站所有者獲取自簽名 SSL 證書文件(通常是以 .crt 或 .pem 結(jié)尾的文件)。
6.導(dǎo)入 SSL 證書:在 Postman 應(yīng)用程序中,點(diǎn)擊左上角的 “Settings”(設(shè)置)按鈕,然后選擇 “Settings”(設(shè)置)選項(xiàng)。在 “Settings”(設(shè)置)頁面的左側(cè)導(dǎo)航欄中,選擇 “Certificates”(證書)選項(xiàng)。點(diǎn)擊 “Add Certificate”(添加證書)按鈕,并選擇你的 SSL 證書文件。按照指示完成證書導(dǎo)入過程。
7.重新發(fā)送請求:回到 Postman 的主界面,重新發(fā)送你的請求。 通過導(dǎo)入自簽名 SSL 證書,Postman 將能夠驗(yàn)證服務(wù)器的證書,并安全地進(jìn)行請求。
————————————————
版權(quán)聲明:本文為CSDN博主「抓飯不吃皮牙子」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/q7w8e9r4/article/details/132140205文章來源地址http://www.zghlxwxcb.cn/news/detail-775066.html

到了這里,關(guān)于HttpSelfHostConfiguration+.net framework4.5.2 發(fā)布HTTPS服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RDIFramework.NET CS敏捷開發(fā)框架 V6.0發(fā)布(支持.NET6+、Framework雙引擎,全網(wǎng)唯一)

    RDIFramework.NET CS敏捷開發(fā)框架 V6.0發(fā)布(支持.NET6+、Framework雙引擎,全網(wǎng)唯一)

    全新RDIFramework.NET V6.0 CS敏捷開發(fā)框架發(fā)布,全網(wǎng)唯一支持.NET6+,F(xiàn)ramework雙引擎,降低開發(fā)成本,提高產(chǎn)品質(zhì)量,提升用戶體驗(yàn)與開發(fā)團(tuán)隊(duì)穩(wěn)定性,做軟件就選RDIFramework.NET開發(fā)框架。 RDIFramework.NET C/S敏捷開發(fā)框架 ,是我司重磅推出的基于.NET的快速信息化系統(tǒng)開發(fā)、整合框架,

    2024年02月15日
    瀏覽(32)
  • 翻過那座山——Jenkins編譯發(fā)布web程序(.net framework web application)

    翻過那座山——Jenkins編譯發(fā)布web程序(.net framework web application)

    ??歡迎點(diǎn)贊 :?? 收藏 ?留言 ?? 如有錯(cuò)誤敬請指正,賜人玫瑰,手留余香! ??本文作者:由webmote 原創(chuàng) ??作者格言:新的征程,我們面對的不是技術(shù)而是人心,人心不可測,海水不可量,唯有技術(shù),才是深沉黑夜中的一座閃爍的燈塔 ! 當(dāng)一根根白發(fā)慢慢的爬到我的頭上

    2024年02月12日
    瀏覽(27)
  • 【Visual Studio 2022創(chuàng)建ASP.NET Web應(yīng)用程序(.NET Framework)發(fā)布并部署到局域網(wǎng) 及“常見權(quán)限問題和不列出目錄問題解決”】

    【Visual Studio 2022創(chuàng)建ASP.NET Web應(yīng)用程序(.NET Framework)發(fā)布并部署到局域網(wǎng) 及“常見權(quán)限問題和不列出目錄問題解決”】

    然后給項(xiàng)目命名并選擇文件保存位置 用一個(gè)空項(xiàng)目進(jìn)行舉例 創(chuàng)建完成如下 點(diǎn)擊更多模板選擇Web窗體 創(chuàng)建成功如下 .aspx頁面編寫前端代碼,.aspx.cs頁面編寫后端代碼 通過插入表格和拉取控件快速完成 然后給Button按鈕設(shè)置一個(gè)點(diǎn)擊事件,雙擊按鈕后會跳到.aspx.cs頁面,完善下面

    2024年02月07日
    瀏覽(85)
  • Linux(統(tǒng)信UOS) 發(fā)布.Net Core,并開啟Https,綁定證書

    Linux(統(tǒng)信UOS) 發(fā)布.Net Core,并開啟Https,綁定證書

    實(shí)際開發(fā)中,有時(shí)會需要為小程序或者需要使用https的應(yīng)用提供API接口服務(wù),這就需要為.Net Core 配置https,配置起來很簡單,只需要在配置文件appsettings.json中添加下面的內(nèi)容即可 如上圖,Kestrel 在最外層,如果已經(jīng)有同名項(xiàng),直接其下面添加https配置即可。

    2024年02月04日
    瀏覽(17)
  • .NET Framework 4.5升級到 .NET Framework 4.8.x

    ?.NET Framework 4.5升級到.NET Framework 4.8.x的步驟分享如下: 1.下載并安裝 .NET Framework 4.8.x 從 Microsoft 的官方網(wǎng)站上下載 .NET Framework 4.8.x 的安裝程序,并按照提示安裝。在安裝過程中,可以選擇是否安裝語言包和參考源代碼。 2.更新現(xiàn)有應(yīng)用程序 完成 .NET Framework 4.8.x 的安裝后,需

    2024年02月04日
    瀏覽(17)
  • VS2022 安裝 .NET Framework 4.0 和 .NET Framework 4.5 的方法

    VS2022 安裝 .NET Framework 4.0 和 .NET Framework 4.5 的方法

    2022年5月27日,剛剛把VS2019升級到了VS2022,安裝時(shí)已經(jīng)不提供.NET Framework 4.0和.NET Framework 4.5的目標(biāo)框架了,打開VS也提示不支持目標(biāo)框架。 1、下載.NET Framework框架 .NET Framework 4.5.2 .NET Framework 4.5.1 .NET Framework 4.5 .NET Framework 4.0 備份鏈接:https://pan.baidu.com/s/1AIuva6GjGGKQ2XJftZpIyQ 提取碼

    2024年02月12日
    瀏覽(20)
  • VS2022 安裝 .NET Framework 4.0或.NET Framework 4.5 以及其他版本

    VS2022 安裝 .NET Framework 4.0或.NET Framework 4.5 以及其他版本

    VS2019升級到了VS2022之后,安裝時(shí)已經(jīng)不提供.NET Framework 4.0和.NET Framework 4.5的目標(biāo)框架了,打開VS也提示不支持目標(biāo)框架。 下載.NET Framework框架 官網(wǎng)下載對應(yīng)版本的sdk:https://dotnet.microsoft.com/zh-cn/download/visual-studio-sdks?cid=getdotnetsdk 點(diǎn)擊開發(fā)者工具包進(jìn)行下載; 下載完之后直接雙

    2024年02月11日
    瀏覽(55)
  • ASP.NET Website 項(xiàng)目 .NET Framework 4.0 ~ .NET Framework 4.8支持c#哪些版本(Website)

    ASP.NET Website 項(xiàng)目 .NET Framework 4.0 ~ .NET Framework 4.8支持c#哪些版本(Website)

    本文講的是Website網(wǎng)站項(xiàng)目,由于維護(hù)老項(xiàng)目Website .net framework4.0,遇到c#6.0語法不支持。便做了點(diǎn)記錄 下面是關(guān)于 ASP.NET Website 項(xiàng)目在不同版本的 .NET Framework 下支持的 C# 版本的總結(jié): ASP.NET Website 項(xiàng)目在 .NET Framework 4.0 中,默認(rèn)使用 C# 4.0 版本。該版本不支持 C# 6.0 及更高版本

    2024年02月16日
    瀏覽(21)
  • .NET Framework 概述

    C# 語言是C和C++語言演變而來的,是用于創(chuàng)建和運(yùn)行在.NET CLR上的程序語言之一,是Microsoft 專門為使用.NET 平臺而創(chuàng)建的一門新的語言。 什么是.NET Framework ?????? .NET Framework 是微軟的幾個(gè)開發(fā)團(tuán)隊(duì)一起努力的成果,主要用于產(chǎn)生一個(gè)可以快速開發(fā)、部署網(wǎng)站服務(wù)及應(yīng)用程序

    2024年02月06日
    瀏覽(20)
  • .NET Framework

    .NET Framework

    它是一個(gè)虛擬機(jī),用于編譯和執(zhí)行用 C#、VB.Net 等不同語言編寫的程序。 操作系統(tǒng)架構(gòu)和 CPU 架構(gòu)的組合稱為平臺。 平臺相關(guān)意味著編程語言代碼將僅在特定操作系統(tǒng)上運(yùn)行。 .NET 應(yīng)用程序依賴于平臺,因?yàn)?.NET 框架只能在基于 Windows 的操作系統(tǒng)上運(yùn)行。由于 Mono 框架,.Net

    2024年02月06日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包