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

📄 uclogin.ascx.cs

📁 网站CA认证源代码
💻 CS
字号:
namespace ENet.CA
{
	using System;	
	using System.Collections;
	using System.ComponentModel;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.SessionState;
	using System.Web.UI;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;
	/// <summary>
	///		Summary description for UcLogin.
	/// </summary>
	public class UcLogin : System.Web.UI.UserControl
	{
		protected System.Web.UI.HtmlControls.HtmlTableCell tdErr;
		protected System.Web.UI.WebControls.ImageButton ImgOK;
		protected System.Web.UI.HtmlControls.HtmlTable tabPassword;
		protected System.Web.UI.HtmlControls.HtmlImage ImgLine;
		protected System.Web.UI.WebControls.TextBox txtPassWord;

		private void Page_Load(object sender, System.EventArgs e)
		{
			try
			{
				txtPassWord.Attributes.Add("OnKeyPress","txtKeyPress('"+ImgOK.ClientID+"');");
				if(!Page.IsPostBack)
				{
					tabPassword.Visible=false;
					if(this.CheckUserStatus())
					{
						tabPassword.Visible=true;
					}
					else
					{
						if(this.CheckCert())
						{
							tabPassword.Visible=true;
						}
					}
				}				
			}
			catch(System.Exception ex)
			{
				tdErr.InnerHtml="登陆失败<br>描述:未知原因!";
			}
		}
		private bool CheckUserStatus()
		{
			bool bReturn=false;
			if(Session["E3_UserID"]!=null)
			{
				bReturn=true;
			}
			return bReturn;
		}
		private bool CheckCert()
		{
			bool bReturn=false;

			string mes="";
			byte[] cert=Request.ClientCertificate.Certificate;
			string certmem=Convert.ToBase64String(cert);	
			if(certmem=="")
			{
				//Response.Write("<script language=javascript>window.alert('该功能需使用eKey,请在USB接口插入eKey并输入正确的PIN码!');window.close();</script>");
				tdErr.InnerHtml="该功能需使用eKey,请在USB接口插入eKey并输入正确的PIN码!";
				return bReturn;
			}
			CA.CASystem CaCert=new CA.CASystem();
			int isPost=1;
			int ret=CaCert.CheckCert(certmem,isPost);	
			
			switch(ret)
			{
				case 0:
					mes="操作成功";	
					break;
				case 1:
					mes="身份验证成功";
					break;
				case 2:
					mes="客户证书已经验证过";
					break;
				case -1:
					mes="CA根证书不存在";
					break;
				case -2:
					mes="初始化OCSP错误请检查配置文件";
					break;
				case -3:
					mes="登录OCSP失败";
					break;
				case -6:
					mes="初始化引擎失败";
					break;
				case -7:
					mes="初始化CRL配置失败";
					break;
				case -9:
					mes="启动CRL失败";
					break;
				case -11:
					mes="获取证书状态失败";
					break;
				case -111:
					mes="证书已注销";
					break;
					
				case -12:
					mes="证书未知";	
					break;
				case -21:
					mes="验证CRL有效性失败";
					break;
				case -22:
					mes="初始化服务器端证书失败";
					break;
				case -23:
					mes="初始化客户端证书失败";
					break;
				case -24:
					mes="CRL验证证书失败";
					break;
				case -25:
					mes="根证书验证客户端签名证书失败";
					break;
				default:
					mes=ret.ToString();					
					break;
			}
			if(ret>0)
			{		
				try
				{
					
					string UserNumber=CaCert.Subject;//CaCert.GetExtendStringEx("1.2.86.100.5.1.2");//会员之家用户名扩展域					
					
					if(UserNumber!="")
					{
						int UserID=CAccess.UserLogin(UserNumber);						
						if(UserID!=-1)
						{
							Session["E3_UserID"]=UserID;
							Session["User_JgjgCode"]=CAccess.GetUserJgjgCode(UserID.ToString());

							try
							{
								System.Web.HttpCookie ck=new System.Web.HttpCookie("E3Cookie");
								ck["Attach_E3_UserID"]=UserID.ToString();
								ck["Attach_User_JgjgCode"]=Session["User_JgjgCode"].ToString();
								ck["Attach_SessionID"]=Session.SessionID;
								Response.Cookies.Add(ck);
							}
							catch
							{}		
							bReturn=true;

						}
						else
						{
							string sErr="登陆失败!<br>"+
									"描述:<br>&nbsp;&nbsp;您的证书编号:"+UserNumber+
									"<br>&nbsp;&nbsp;从用户列表读取用户失败!";
							tdErr.InnerHtml=sErr;//"描述:从用户列表读取用户失败!";							
						}
					}				
				}
				catch(System.Exception ex)
				{
					
				}				
				
			}
			else
			{
				tdErr.InnerHtml="你提供的证书登陆失败<br>描述:"+mes;						
			}
			return bReturn;
		}

		public void MsgBox(string msgString)
		{
			//操作提示
			msgString = msgString.Replace("\\","\\\\");
			msgString = msgString.Replace("'","\\'");
			msgString = msgString.Replace("\r","\\r");
			msgString = msgString.Replace("\n","\\n");
			
			string RegisterJS = "<script language=JavaScript>{";
			RegisterJS +="alert('" + msgString + "');}";
			RegisterJS += "</script>";
			Page.Response.Write(RegisterJS);
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		///		Required method for Designer support - do not modify
		///		the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{
			this.ImgOK.Click += new System.Web.UI.ImageClickEventHandler(this.ImgOK_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		private void ImgOK_Click(object sender, System.Web.UI.ImageClickEventArgs e)
		{
			try
			{
				if(txtPassWord.Text=="")
				{
					tdErr.InnerHtml="登陆失败<br>描述:密码不允许为空!";
					return;
				}
				string UserID=Session["E3_UserID"].ToString();
				if(CAccess.UserLogin(UserID,txtPassWord.Text)!=-1)
				{
					Session["E3_PassWord"]=txtPassWord.Text;
					string sUrl="";
					if(Request.QueryString["U"]!=null)
						sUrl=Request.QueryString["U"].ToString();
					if(sUrl.IndexOf("https")==-1)
						sUrl=sUrl.Replace("http","https");

					if(sUrl=="")
					{
						if(CPublic.DefaultPage!=null)
							Response.Redirect(CPublic.DefaultPage);
						else
							Response.Redirect("/main/jgxx");
					}					
					else
						Response.Redirect(sUrl);
				}
				else
				{
					tdErr.InnerHtml="登陆失败<br>描述:密码错误!";
				}
			}
			catch
			{
				tdErr.InnerHtml="登陆失败<br>描述:密码错误!";
			}
		}
	}
}

⌨️ 快捷键说明

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