Technology sharing

C# instrumenta exe-fundatur embedded HTTPS audiendo ministerium et upgrades ab HTTP ad HTTPS tergum-finem fenestras ministerium

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Quia mos HTTP eget ad upgrade originalis HTTP servitium ad servitutem quae https sustentat, quia servitus originalis HTTP in structo in HTTP audiendi servitium fenestrarum servitutis indiget, et https non sustinet nec est sicut alia. WebAPIs in IIS explicavit. Testimonium HTTPS directe oneratur sicut servitium, ita hic debes mutare originale ministerium ad https supportandas et HTTPS portum ligandi unctiones in servi ambitus praestandi, hoc modo:

(Nota: Sequentes operationes require ut habeas libellum HTTPS iam).

1. Instrue libellum, duplices tabellam deprime, eamque institue: "locus computatrum”–>“personale”;

2. Geminus-click to openertCertificatorium, videre potes (certhash) informationes relatas in informationibus felis.

3. Praestare portum binding (default portum CDXLIII)

netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable

4. Servo progressio exsecutionis;

  1. using System;
  2. public class HttpService
  3. {
  4. public MyHttpServer()
  5. {
  6. System.Net.HttpListener httpListener = new System.Net.HttpListener();
  7. httpListener.AuthenticationSchemes = System.Net.AuthenticationSchemes.Anonymous;
  8. httpListener.Prefixes.Add("https://*:8000/"); // 支持https
  9. httpListener.Start();
  10. new System.Threading.Thread(new System.Threading.ThreadStart(delegate
  11. {
  12. while (true)
  13. {
  14. try
  15. {
  16. System.Net.HttpListenerContext httpListenerContext = httpListener.GetContext();
  17. new System.Threading.Thread(new System.Threading.ParameterizedThreadStart((input) =>
  18. {
  19. System.Net.HttpListenerContext ctx = (System.Net.HttpListenerContext)input;
  20. System.Net.HttpListenerRequest request = ctx.Request;
  21. string pram = request.QueryString["Data"];//Get入参
  22. string responseMessage = string.Empty;//返回值
  23. if (!string.IsNullOrEmpty(pram))
  24. {
  25. //Get入参
  26. pramOrg = pram;
  27. pram = System.Web.HttpUtility.UrlDecode(pram);
  28. }
  29. //POST入参
  30. if (request.HttpMethod == "POST")
  31. {
  32. //处理业务请求
  33. StreamReader reader = new StreamReader(request.InputStream, Encoding.UTF8);
  34. pram = reader.ReadToEnd();
  35. reader.Close();
  36. reader.Dispose();
  37. }
  38. #region 业务处理
  39. try
  40. {
  41. //业务处理
  42. responseMessage = "业务结果";
  43. }
  44. catch (Exception ex)
  45. {
  46. //异常处理
  47. responseMessage = ex.Message;
  48. }
  49. #endregion 业务处理
  50. #region 返回给调用者
  51. //输出类型
  52. httpListenerContext.Response.ContentType = "text/html; charset=UTF-8";
  53. //返回状态
  54. httpListenerContext.Response.StatusCode = 200;
  55. //设置授权,尝试解决Jquery跨域问题
  56. //httpListenerContext.Response.Headers["Access-Control-Allow-Origin"] = "*";
  57. //httpListenerContext.Response.Headers["Access-Control-Allow-Methods"] = "GET,POST";
  58. //httpListenerContext.Response.Headers["Access-Control-Max-Age"] = "1000";
  59. try
  60. {
  61. //输出界面内容
  62. if (!string.IsNullOrEmpty(responseMessage))
  63. {
  64. //返回文本内容
  65. using (StreamWriter writer = new StreamWriter(httpListenerContext.Response.OutputStream))
  66. {
  67. writer.Write(responseMessage);
  68. }
  69. }
  70. }
  71. catch
  72. {
  73. //刷新太快异常,不做处理
  74. }
  75. #endregion 返回给调用者
  76. })).Start(httpListenerContext);
  77. }
  78. catch
  79. { }
  80. }
  81. })).Start();
  82. }
  83. }

Si in portu processum ligandi supra relatum est error, vel additio deficit, ad sequentem processum referre potes;

1. Perspice an recte parametri mandatum retis sint;

2. Deficio addere libellum SSL, error: 1312 Sessio login certa non est. Potest terminari. Modus processus:

Compendia CONCILIO+R et mmc.exe intrant, hoc modo:

    

Preme 'OK', et sequentis consoli radix nodi interfaciei pop sursum erit:

Lego File->Adde/Delere Snap-in, vel directe uti brevis clavis accidit+m ad pop-up sequentem pop- sursum et operationem exerce;

Inde ad personalis certificatorium import

SSL certificatorium ad portum numerus liga tandem

netsh http add sslcert ipport=0.0.0.0:8080 certhash=指纹 appid={程序GUID/newguid} clientcertnegotiation=enable