📄 casystem.cs
字号:
#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 + -