C#编程 忘记密码功能的实现方法
来源:互联网 发布:中科大 知乎 编辑:程序博客网 时间:2024/05/22 02:18
int result = user.GetBackPassword(LoginName.Text.Trim(), Question.Text.Trim(),
Answer.Text.Trim(), Email.Text);
if (result == 1)
...{
Message.Text = "您的密码已发送,请到邮箱查收";
//user.ChangePassword(
}
else
...{
Message.Text = "您的输入信息有误!";
}
public int GetBackPassword(string userName, string question, string answer, string email)
...{
object m_DBNull = Convert.DBNull;
//获得新的随机密码
string newPassword = MakePassword(6);
//定义存储过程参数
SqlParameter[] para = ...{
new SqlParameter("@userName", userName),
new SqlParameter("@question", question),
new SqlParameter("@answer", answer),
new SqlParameter("@newPassword", newPassword),
new SqlParameter("@result", SqlDbType.Int, 8, ParameterDirection.Output,
true, 0, 0, "", DataRowVersion.Default, m_DBNull)
};
//执行存储过程
try
...{
DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure,
"GetBackPwd", para);
}
catch
...{
throw new Exception("邮件无法发送!");
}
//获得输出参数的值
int result = Convert.ToInt32(para[4].Value);
//如果密码保护资料填写正确
if (result == 1)
...{
//从Web.config获取发信人地址、邮件标题、邮件用户名和密码以及SmtpServer
string sender = System.Configuration.ConfigurationSettings.AppSettings["mainSender"];
string title = System.Configuration.ConfigurationSettings.AppSettings["mailTitle"];
string mailUser = System.Configuration.ConfigurationSettings.AppSettings["mailUser"];
string mailPwd = System.Configuration.ConfigurationSettings.AppSettings["mailPwd"];
string smtpServer = System.Configuration.ConfigurationSettings.AppSettings["mailSmtpServer"];
//发信
try
...{
Mail.CDOsendmail(sender, email, title, "您在eshop的密码已找回,新密码为"+newPassword
, mailUser, mailPwd, smtpServer);
}
catch(Exception ex)
...{
throw new Exception(ex.Message);
}
}
return result;
}
//随机生成密码
private static string MakePassword(int pwdLength)
...{
//声明要返回的字符串
string tmpstr = "";
//密码中包含的字符数组
string pwdchars="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//数组索引随机数
int iRandNum;
//随机数生成器
Random rnd = new Random();
for(int i=0;i<pwdLength;i++)
...{
//Random类的Next方法生成一个指定范围的随机数
iRandNum = rnd.Next(pwdchars.Length);
//tmpstr随机添加一个字符
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
ALTER PROCEDURE GetBackPwd
@question nvarchar(50),
@answer nvarchar(50),
@userName nvarchar(50),
@newPassword nvarchar(50),
@result int output
AS
if exists (SELECT * FROM USERINFO WHERE USERNAME=@USERNAME AND QUESTION=@QUESTION
AND ANSWER=@ANSWER)
BEGIN
SET @RESULT = 1
UPDATE USERINFO
SET USERPWD = @newPassword
WHERE userName = @userName
END
ELSE
BEGIN
SET @RESULT = -1
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
<add key="mailUser" value="" />
<add key="mailPwd" value="" />
<add key="mailSmtpServer" value="" />
<add key="mailSender" value="" />
<add key="mailTitle" value="" />
- C#编程 忘记密码功能的实现方法
- C#编程 忘记密码功能的实现方法
- C#编程 忘记密码功能的实现方法
- C# 忘记密码实现方法
- C# 忘记密码实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- MySQL忘记密码恢复密码的实现方法
- asp.net网站设计,忘记密码功能的代码实现?
- 忘记密码功能的安全实现(邮件方式)
- 【转·开发技术】C#实现 [忘记密码] 通过【邮箱取回密码】功能
- "忘记密码"功能过程及其实现细节
- C#密码找回功能的实现
- C#的XML实现记住密码功能
- 常用数据库语句
- Linux安全配置
- C# 学习自定义控件,从一个简单实用的日期控件开始。
- Silverlight 简介
- Vs编译器如果处理类继承?
- C#编程 忘记密码功能的实现方法
- JSP中把动态页面转换为静态页面
- 用电脑的人最好吃什么
- 这些蔬菜不能搭配吃
- 基于ExtJS开发的单用户Blog系统文档及源码下载
- css固定定位,即悬浮效果
- php实现数组转化成xml的类
- dreamweaver在 ONLOAD运行_onopen.htm时,发生以下javascript错误
- [oracle]linux平台启动关闭oracle数据库