User.cs
上传用户:xiecaij
上传日期:2015-02-08
资源大小:2016k
文件大小:6k
源码类别:

百货/超市行业

开发平台:

ASP/ASPX

  1. using System;
  2. using System.Data;
  3. using System.Data.SqlClient;
  4. namespace eshop.BLL
  5. {
  6. public class UserInfo
  7. {
  8. public string userRealName;
  9. public string zipcode;
  10. public string email;
  11. public string sex;
  12. public string address;
  13. }
  14. /// <summary>
  15. /// User 的摘要说明。
  16. /// </summary>
  17. public class User
  18. {
  19. public User()
  20. {
  21. }
  22. public int SignIn(string userName, string userPwd)
  23. {
  24. SqlParameter[] signInPara = {
  25.    new SqlParameter("@userName", userName),
  26.    new SqlParameter("@userPwd", userPwd)
  27.    };
  28. //返回userId的值,如果不存在记录,返回为0
  29. return Convert.ToInt32(DAL.SQLHelper.ExecuteScalar(DAL.SQLHelper.CONN_STRING, 
  30. CommandType.StoredProcedure, "SignIn", signInPara));
  31. }
  32. public int ChangePassword (string oldPassword, string newPassword, int userId)
  33. {
  34. object m_DBNull = Convert.DBNull;
  35. SqlParameter[] para = {
  36.   new SqlParameter("@userId", userId),
  37.   new SqlParameter("@oldPassword", oldPassword),
  38.   new SqlParameter("@newPassword", newPassword),
  39.   new SqlParameter("@result", SqlDbType.Int, 8, ParameterDirection.Output,
  40.   true, 0, 0, "", DataRowVersion.Default, m_DBNull)
  41.   };
  42. try
  43. {
  44. DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure, "ChangePassword", para);
  45. }
  46. catch
  47. {
  48. throw;
  49. }
  50. return Convert.ToInt32(para[3].Value);
  51. }
  52. public UserInfo GetUserInfo(string userId)
  53. {
  54. SqlParameter[] para = {
  55.   new SqlParameter("@userId", int.Parse(userId))
  56.   };
  57. SqlDataReader dr = DAL.SQLHelper.ExecuteReader(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure, "GetUserInfo", para);
  58. dr.Read();
  59. UserInfo userInfo = new UserInfo();
  60. userInfo.userRealName = dr["UserRealName"].ToString();
  61. userInfo.zipcode = dr["zipcode"].ToString();
  62. userInfo.address = dr["address"].ToString();
  63. userInfo.email = dr["email"].ToString();
  64. userInfo.sex = dr["sex"].ToString();
  65. return userInfo;
  66. }
  67. public int ChangeProfile(string userId, string userRealName, string address, 
  68. string zipCode, string email ,string sex)
  69. {
  70. SqlParameter[] para = {
  71.   new SqlParameter("@userId", int.Parse(userId)),
  72.   new SqlParameter("@userRealName", userRealName),
  73.   new SqlParameter("@address", address),
  74.   new SqlParameter("@zipcode", zipCode),
  75.   new SqlParameter("@email", email),
  76.   new SqlParameter("@sex", sex)
  77.   };
  78. return DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure, 
  79. "EditAcount", para);
  80. }
  81. public int AddNewUser(string userName, string password, string question, string answer)
  82. {
  83. object m_DBNull = Convert.DBNull;
  84. SqlParameter[] para = {
  85.   new SqlParameter("@userName", userName),
  86.   new SqlParameter("@Password", password),
  87.   new SqlParameter("@question", question),
  88.   new SqlParameter("@answer", answer),
  89.   new SqlParameter("@result", SqlDbType.Int, 8, ParameterDirection.Output,
  90.   true, 0, 0, "", DataRowVersion.Default, m_DBNull)
  91.   };
  92. try
  93. {
  94. DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
  95. "AddNewUser", para);
  96. }
  97. catch
  98. {
  99. throw;
  100. }
  101. return Convert.ToInt32(para[4].Value);
  102. }
  103. public int GetBackPassword(string userName, string question, string answer, string email)
  104. {
  105. object m_DBNull = Convert.DBNull;
  106. //获得新的随机密码
  107. string newPassword = MakePassword(6);
  108. //定义存储过程参数 
  109. SqlParameter[] para = {
  110.   new SqlParameter("@userName", userName),
  111.   new SqlParameter("@question", question),
  112.   new SqlParameter("@answer", answer),
  113.   new SqlParameter("@newPassword", newPassword),
  114.   new SqlParameter("@result", SqlDbType.Int, 8, ParameterDirection.Output,
  115.   true, 0, 0, "", DataRowVersion.Default, m_DBNull)
  116.   };
  117. //执行存储过程
  118. try
  119. {
  120. DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
  121. "GetBackPwd", para);
  122. }
  123. catch
  124. {
  125. throw new Exception("邮件无法发送!");
  126. }
  127. //获得输出参数的值
  128. int result = Convert.ToInt32(para[4].Value);
  129. //如果密码保护资料填写正确
  130. if (result == 1)
  131. {
  132. //从Web.config获取发信人地址、邮件标题、邮件用户名和密码以及SmtpServer
  133. string sender = System.Configuration.ConfigurationSettings.AppSettings["mainSender"];
  134. string title = System.Configuration.ConfigurationSettings.AppSettings["mailTitle"];
  135. string mailUser =  System.Configuration.ConfigurationSettings.AppSettings["mailUser"];
  136. string mailPwd = System.Configuration.ConfigurationSettings.AppSettings["mailPwd"];
  137. string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["mailSmtpServer"];
  138. //发信
  139. try
  140. {
  141. Mail.CDOsendmail(sender, email, title, "您在eshop的密码已找回,新密码为"+newPassword 
  142. , mailUser, mailPwd, smtpServer);
  143. }
  144. catch(Exception ex)
  145. {
  146. throw new Exception(ex.Message);
  147. }
  148. }
  149. return result;
  150. }
  151. //随机生成密码
  152. private static string MakePassword(int pwdLength)
  153. {
  154. //声明要返回的字符串
  155. string tmpstr = "";
  156. //密码中包含的字符数组
  157. string pwdchars="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  158. //数组索引随机数
  159. int iRandNum;
  160. //随机数生成器
  161. Random rnd = new Random();
  162. for(int i=0;i<pwdLength;i++)
  163. {
  164. //Random类的Next方法生成一个指定范围的随机数
  165. iRandNum = rnd.Next(pwdchars.Length);
  166. //tmpstr随机添加一个字符
  167. tmpstr += pwdchars[iRandNum];
  168. }
  169. return tmpstr;
  170. }
  171. }
  172. }