⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 casystem.cs

📁 网站CA认证源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
		#region Private Function

		/// <summary>
		/// 初始化信息
		/// </summary>
		private void InitData()
		{
			try
			{
				uue="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
				strWorkpath = ConfigurationSettings.AppSettings["strWorkpath"];
				strServerCertFile = ConfigurationSettings.AppSettings["strServerCertFile"];		
				filename = ConfigurationSettings.AppSettings["filename"];
				strCRLFile = ConfigurationSettings.AppSettings["strCRLFile"];
				strRootCertChainFile=ConfigurationSettings.AppSettings["strRootCertChainFile"];	
				strServerCertPass=ConfigurationSettings.AppSettings["ServerCertPass"];
				strCheckModel=ConfigurationSettings.AppSettings["CheckModel"];
			}
			catch
			{}
			
		}

		/// <summary>
		/// 获取客户端证书
		/// </summary>
		public string GetClientCert()
		{
			string certstr="";
			try
			{
				byte[] cert=Request.ClientCertificate.Certificate;
				certstr=Convert.ToBase64String(cert);
			}
			catch
			{}			
			return certstr;
		}

		/// <summary>
		/// 获取CA根证书	
		/// </summary>
		private int GetRootCert()
		{
			int ret=0;
			try
			{
				if(File.Exists(filename))
				{
					StreamReader tf=File.OpenText(filename);				
					cacert = cacert +tf.ReadToEnd();
					tf.Close();
					ret=0;		//"获取CA根证书成功!";
				}
				else
				{
					ret=-1;		//"CA根证书不存在";
				}
			}
			catch
			{
			
				ret=-101;
			}			
			return ret;
		}
		
		
		/// <summary>
		/// OCSP验证证书
		/// </summary>
		private int ValidateOCSP()
		{		
			int ret=0;
			try
			{								
				object strLhandle=null;
				objOCSPCertStatus=new JITOCSPAPICOMLib._JIT_OCSP_CertStatusClass();	
				strLhandle=objOCSPCertStatus.Login();
				lHandle= Convert.ToInt32(strLhandle);
				if(0==lHandle)
				{
					ret=-2;		//"初始化OCSP错误请检查配置文件";
				}
				else
				{
					ret=0;		//"初始化OCSP成功";
				}
				Ret=Convert.ToInt32(objOCSPCertStatus.GetLastErr(lHandle));
				if(0!=Ret)
				{
					ret=-3;		//"登录OCSP失败"+"ErrorCode="+Ret;
					//Response.Write("<script language=javascript>window.alert('登录OCSP失败22!')</script>");
				}
				else
				{
					ret=0;		//"登录OCSP成功";
				}
			}
			catch
			{
				ret=-102;
			}
			return ret;
		}

		/// <summary>
		/// 获取用户状态
		/// </summary>
		public int GetUserState()
		{		
			int ret=0;
			lStatus = -1;
			//获取用户状态
			try
			{
				lStatus =(int) objOCSPCertStatus.GetUserCertStatus(lHandle,cacert,certmem);
				Ret = (int)objOCSPCertStatus.GetLastErr(lHandle);
				if(0!= Ret)
				{
					ret=-11;		// "获取证书状态失败!" + "ErrorCode = " + Ret ;	
					
				}
				else if(0==lStatus)
				{
					ret=0;			//"--证书使用中--" + lStatus;
				}
				else if(1==lStatus)
				{
					ret=-111;			//"--证书已注销--" + lStatus ;
				}
				else
				{
					ret=-12;		//"--证书未知--" + lStatus ;
				}
				LogOut();
			}
			catch
			{
				ret=-3;
			}
			return ret;
		}

		/// <summary>
		/// 退出登录
		/// </summary>
		/// <returns></returns>
		private bool LogOut()
		{
			//退出登录
			bool ret=true;
			try
			{
				Ret = (int)objOCSPCertStatus.Logout(lHandle);
				if(0!= Ret)
				{
					ret=false;		//ret+= "退出OCSP登录失败!" + "ErrorCode = " + Ret ;	
					//Response.End();
				}
				else
				{
					ret=true;
				}
			}
			catch
			{}			
			return ret;
		}

		/// <summary>
		/// 初始化引擎
		/// </summary>
		private int InitEngine()
		{
			// 初始化引擎
			int ret=0;
			try
			{
				objEngine =new JCAPICOMLib.CApiEngineClass();     
			}
			catch
			{
				ret=-103;
			}
			objEngine.CreateEngine(strWorkpath);	
			int nErrorCode = objEngine.ErrorCode;
			if(0!= nErrorCode)
			{
				ret=-6;		//初始化引擎失败!				
			}
			else
			{
				ret=0;		//初始化引擎成功
			}
			return ret;
		}

		/// <summary>
		/// 初始化CRL配置
		/// </summary>
		private int InitCRLSet()
		{
			// 初始化CRL配置
			int ret=0;			
			int nMode = 1;
			try
			{
				objEngine.InitCRL(strCRLFile,nMode);
				int nErrorCode = objEngine.ErrorCode;
				if(0!= nErrorCode)
				{
					ret=-7;		//"初始化CRL配置失败!					
				}
				else
				{
					ret=0;		//初始化CRL配置成功!
				}
				
			}
			catch
			{
				ret=-104;
			}			
			return ret;
		}

		/// <summary>
		/// 初始化CRL
		/// </summary>
		private int InitCRL()
		{
			// 初始化CRL
			int ret=0;
			try
			{
				objCRL =new JCAPICOMLib.CApiCRLCOMClass();
				objCRL.CreateCRL(objEngine);
				int nErrorCode = objCRL.ErrorCode;
				if(0 !=nErrorCode)
				{
					ret=-9;		//启动CRL失败!					
				}
				else
				{
					ret=0;		//初始化CRL成功!
				}	
			}
			catch
			{
				ret=-105;
			}
			
			return ret;
		}

		/// <summary>
		/// 验证CRL有效性
		/// </summary>
		private int ValidateCRLVerify()
		{
			//验证CRL有效性
			int ret=0;
			try
			{
				objCRL.VerifyCRL(strRootCertChainFile);
				int nErrorCode = objCRL.ErrorCode;
				if(0!=nErrorCode)
				{
					ret=-21;		//验证CRL有效性失败!				
				}		
				else
				{
					ret=0 ;			//验证CRL有效性成功!
				}
			}
			catch
			{
				ret=-106;
			}
			return ret;
			
		}

		/// <summary>
		/// 初始化服务器证书
		/// </summary>
		private int InitServerCert()
		{
			//初始化服务器证书
			int ret=0;
			try
			{				
				objServerEncCert =new JCAPICOMLib.CApiCertificateClass();		
				objServerEncCert.CreateCertificate(strServerCertFile,strServerCertPass,strWorkpath);
				int nErrorCode = objServerEncCert.ErrorCode;
				if( 0 != nErrorCode)
				{
					ret=-22;		//初始化服务器端证失败!
				}
				else
				{
					ret=0;		//初始化服务器端证书成功!
				
				}
			}
			catch
			{
				ret=-107;
			}			
			return ret;
		}
		

		/// <summary>
		/// 初始化客户端证书
		/// </summary>
		public int InitClientCert()
		{
			// 初始化客户端证书
			int ret=0;
			try
			{
				objClientSignCert = new  JCAPICOMLib.CApiCertificateClass();			
				objClientSignCert.CreateCertificateFromMem(certmem, certmem.Length);
				int nErrorCode = objClientSignCert.ErrorCode;
				if( 0 != nErrorCode )
				{
					ret=-23;		//初始化客户端证书失败!
				}
				else
				{
					ret=0;			//初始化客户端证书成功!
				}
			}
			catch
			{
				ret=-108;
			}			
			return ret;
		}
		
		/// <summary>
		/// CRL验证客户端证书
		/// </summary>
		private int CRLVerifyCert()
		{			
			int ret=0;
			int mStatus=0;
			try
			{
				mStatus=(int)objCRL.VerifyCert(objClientSignCert); //返回证书状态
				int nErrorCode = objCRL.ErrorCode;
				if( 0 != nErrorCode )
				{
					ret=-24;		//CRL验证证书失败!
				}
				else if(0==mStatus)
				{
					ret=0;			//CRL验证证书成功!证书使用中
				}
				
				else if(1==mStatus)
				{
					ret=-111;		//"--证书已注销--" 
				}
				else
				{
					ret=-12;		//"--证书未知--" 
				}
			}
			catch
			{
				ret=-109;
			}
			return ret;			
		}

		/// <summary>
		/// 根证书验证客户端签名证书
		/// </summary>
		private int RootVerifyCert()
		{
			int ret=0;
			try
			{
				objClientSignCert.VerifyCert(strRootCertChainFile);
				int nErrorCode = objClientSignCert.ErrorCode;
	
				if( 0 != nErrorCode)
				{
					ret=-25;		//根证书验证客户端签名证书失败!
				}
				else
				{
					ret=0;			//根证书验证客户端签名证书成功!
				}	
				int ISEngineNew = 0;
				Session["ISEngineNew"] =ISEngineNew;	
			}
			catch
			{
				ret=-110;
			}
			return ret;
											
		}	

		private void SetToSession()
		{
			Session["objClientSignCert"]=objClientSignCert;		//客户证书
			Session["objServerEncCert"]=objServerEncCert;		//服务器证书
			Session["CertSN"]=objClientSignCert.GetCertSN(1).ToString();	//客户证书编号
		}		
		
		#endregion


		#region Property
		/// <summary>
		/// 证书主题
		/// </summary>
		public string Subject
		{
			
			get
			{				
				return objClientSignCert.GetSubject().ToString();				
			}
		}

		/// <summary>
		/// 证书SN
		/// </summary>
		public string CertSN
		{
			get
			{			
				return objClientSignCert.GetCertSN(1).ToString();				
			}
		}
		/// <summary>
		/// 扩展域个数
		/// </summary>
		public string ExtendCount
		{
			get
			{
				return objClientSignCert.GetExtendCount().ToString();				
			}
		}

		/// <summary>
		/// 扩展域
		/// </summary>
		public string ExtendOID
		{
			get
			{
				string OID="";
				int mID=Convert.ToInt32(objClientSignCert.GetExtendCount().ToString());
				if(mID!=0)
				{
					OID=objClientSignCert.GetExtendOID(mID).ToString();
				}
				return OID;
			}
		}

		/// <summary>
		/// 身份证号
		/// </summary>
		public string IdCode
		{			
			get
			{				
				return objClientSignCert.GetIdCode(0).ToString();				
			}
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -