A-A+

UCMA开发-ConnectionManager

2015年12月29日 技术 暂无评论 阅读 2,661 次

索引请点击这里

本文的目的在于讲解如何创建RealTimeServerTlsConnectionManager,为之后构建自动应答机器人做准备。

Constructors

名称 说明
RealTimeServerTlsConnectionManager(String,Byte[]) 使用默认的本地主机名称和给定的证书信息实例化
RealTimeServerTlsConnectionManager(String, String, Byte[]) 使用给定的本地主机名称和给定的证书信息实例化

Methods

名称 说明
StartListening 开始监听指定的地址和端口(继承自RealTimeServerConnectionManager)
StopListening 停止监听新的连接(继承自RealTimeServerConnectionManager)

Properties

名称 说明
IsListening 获取监听是否启用(继承自RealTimeServerConnectionManager。)
ListeningPort 获取监听端口(继承自RealTimeServerConnectionManager。)
NeedMutualTls 获取或设置一个MutualTls连接对于传出的Tls连接是否是必须的

Example

  1. RealTimeConnectionManager _connectionManager;
  2. RealTimeServerTlsConnectionManager _serverTlsConnectionManager;
  3. try
  4. {
  5.     _serverTlsConnectionManager = new RealTimeServerTlsConnectionManager(
  6.         _strCertificateIssuerName, _strCertificateSerialNumber);
  7. }
  8. catch (TlsFailureException ex)
  9. {
  10.     throw ex;
  11. }
  12. _serverTlsConnectionManager.NeedMutualTls = true;
  13. _connectionManager = (RealTimeConnectionManager)_serverTlsConnectionManager;
  14. IPAddress localIpAddress = Dns.GetHostAddresses(Dns.GetHostName())[1];
  15. if (!_serverTlsConnectionManager.IsListening)
  16. {
  17.     _serverTlsConnectionManager.StartListening(new IPEndPoint(localIpAddress, 0));
  18. }

如何获取证书,可以参考如下代码:

  1. //using System.Security.Cryptography.X509Certificates;
  2. X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
  3. try
  4. {
  5.     store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
  6. }
  7. catch (System.Security.SecurityException)
  8. {
  9.     MessageBox.Show("你没有权限枚举本地计算机存储的证书");
  10.     return;
  11. }
  12. if (store.Certificates.Count < 1)
  13. {
  14.     MessageBox.Show("请确保证书存在");
  15.     return;
  16. }
  17. //遍历寻找适合的证书
  18. foreach (X509Certificate2 certificate in store.Certificates)
  19. {
  20.     StringBuilder sb = new StringBuilder();
  21.     XmlWriter writer = XmlWriter.Create(sb);
  22.     writer.WriteStartElement("root");
  23.     writer.WriteBinHex(
  24.         certificate.GetSerialNumber(), 0, certificate.GetSerialNumber().Length);
  25.     writer.WriteEndElement();
  26.     writer.Close();
  27.     this.txtReport.AppendText(
  28.         "IssuerName:" + certificate.Issuer
  29.         + "\r\nSerialNumber:" + sb.ToString() + "\r\n\r\n");
  30. }

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality

用户登录

分享到: