源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

解析数字签名的substring结构(获取数字签名时间)

  • 时间:2021-12-21 07:43 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:解析数字签名的substring结构(获取数字签名时间)
解析的结构和代码:
[u]复制代码[/u] 代码如下:
X509CertificateSubstring #region 文件描述 #endregion #region 类修改记录 : 每次修改一组描述 #endregion using System; using System.Security.Cryptography.X509Certificates; namespace DTLEntAdministration.Common {     /// <summary>     /// 数字签名的Substring结构     /// </summary>     public class X509CertificateSubstring     {         //CN=Shenzhen DriveTheLife Software Technology Co.Ltd, OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Shenzhen DriveTheLife Software Technology Co.Ltd, L=Shenzhen, S=Guangdong, C=CN         #region 私有字段         private string _CN = string.Empty;         private string _OU = string.Empty;         private string _O = string.Empty;         private string _L = string.Empty;         private string _S = string.Empty;         private string _C = string.Empty;         #endregion         #region 公共只读属性         public string CN { get { return _CN; } }         public string OU { get { return _OU; } }         public string O { get { return _O; } }         public string L { get { return _L; } }         public string S { get { return _S; } }         public string C { get { return _C; } }         #endregion         public X509CertificateSubstring() { }         /// <summary>         /// 将Substring字符串解析成结构体         /// </summary>         /// <param name="substring">Substring字符串</param>         /// <returns>X509CertificateSubstring</returns>         public static X509CertificateSubstring Parse(string substring)         {             X509CertificateSubstring xcs = new X509CertificateSubstring();             string[] items = substring.Split(',');             foreach (var item in items)             {                 if (item.Trim().StartsWith("CN="))                 {                     xcs._CN = item.Trim().Substring(3); continue;                 }                 if (item.Trim().StartsWith("OU="))                 {                     xcs._OU = item.Trim().Substring(3); continue;                 }                 if (item.Trim().StartsWith("O="))                 {                     xcs._O = item.Trim().Substring(2); continue;                 }                 if (item.Trim().StartsWith("L="))                 {                     xcs._L = item.Trim().Substring(2); continue;                 }                 if (item.Trim().StartsWith("S="))                 {                     xcs._S = item.Trim().Substring(2); continue;                 }                 if (item.Trim().StartsWith("C="))                 {                     xcs._C = item.Trim().Substring(2); continue;                 }             }             return xcs;         }         /// <summary>         /// 将Substring字符串解析成结构体,并返回数字签名存在与否         /// </summary>         /// <param name="pyFile">读取数字签名的文件的物理路径</param>         /// <param name="xcs">X509CertificateSubstring</param>         /// <returns>bool</returns>         public static bool TryParse(string pyFile, out X509CertificateSubstring xcs)         {             bool result = true;             xcs = new X509CertificateSubstring();             string SubstringCN = string.Empty;             X509Certificate cert = null;             try             {                 cert = X509Certificate2.CreateFromSignedFile(pyFile);             }             catch (System.Security.Cryptography.CryptographicException ce)             {                 //没有数字签名,忽略此异常.                 result = false;             }             catch (Exception ex)             {                 result = false;                 throw ex;             }             if (cert != null)             {                 xcs = X509CertificateSubstring.Parse(cert.Subject);             }             return result;         }     } }
调用的示例代码:
[u]复制代码[/u] 代码如下:
        /// <summary>         /// 获取数字签名的名称         /// </summary>         /// <param name="pyFile">读取数字签名的文件的物理路径</param>         /// <returns>数字签名,如果没有数字签名则返回空字符串</returns>         public static string GetX509CertificateSubstringCN(string pyFile)         {             string SubstringCN = string.Empty;             X509CertificateSubstring xcs;             if (X509CertificateSubstring.TryParse(pyFile, out xcs))             {                 SubstringCN = xcs.CN;             }             return SubstringCN;         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部