`

C#编程忘记密码功能的实现方法

    博客分类:
  • C#
阅读更多
以下是引用片段:
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#查看本地WiFi密码的工具.zip

    ViewLocalWiFiKey项目通过C#编程和利用netsh命令,为用户提供了便捷的查看本地WiFi密码的方法,展现了人工智能在日常应用中的潜力。该项目不仅提供了一个实用的工具,也为学习和理解C#编程及操作系统交互提供了实例...

    c# qq 登陆界面 注册信息 忘记密码 找回密码 还包括电话薄排序 和动态数组

    在C#编程中,开发QQ登录界面以及相关的注册、忘记密码和找回密码功能,涉及到许多核心的编程概念和技术。以下是对这些知识点的详细说明: **登陆界面**: 一个登录界面通常由文本框(TextBox)用于输入用户名和密码...

    C# 用户登陆窗体 登陆过程实现方法

    在C#编程中,创建一个用户登录窗体是构建应用程序的基本步骤之一,特别是在Windows Forms(WinForm)应用中。这个过程涉及到验证用户凭据、处理交互逻辑以及管理窗口生命周期。以下将详细介绍如何实现一个标准的C# ...

    C# ASP.NET - 会员密码三次找回功能

    在代码实现上,可以使用ASP.NET的MVC框架或Web Forms,结合C#编程语言来编写控制器、视图和模型。数据库操作则可以利用Entity Framework或其他ORM工具,简化数据访问层的编写。 总的来说,"C# ASP.NET - 会员密码三...

    C#利用word原生组件给word文档添加和移除密码

    C#作为.NET框架下的主要编程语言,提供了丰富的库和工具来实现各种功能,包括对Microsoft Office文档的处理。本篇将详细介绍如何利用C#结合Microsoft Word的原生组件来为Word文档添加和移除密码,特别关注移除密码这...

    用C#语言编写的具有登录功能的通讯录

    本文将深入探讨一款使用C#编程语言开发的、具有全面功能的通讯录应用,包括登录、注销、密码管理、分类查询以及模糊查询等特性。 首先,我们来关注这个通讯录的核心功能——登录系统。C#是一种面向对象的编程语言,...

    C#实现FTP客户端和服务器程序

    在C#中,我们可以利用System.Net命名空间下的FtpWebRequest和FtpWebResponse类来实现这一功能。以下是一些关键步骤: 1. 创建FtpWebRequest对象,设置URL(FTP服务器地址)和方法(如GET或PUT)。 2. 设置认证信息...

    C#仿QQ项目

    【C#仿QQ项目】是一个基于C#编程语言开发的软件工程,旨在模仿QQ即时通讯软件的功能和用户体验,让你在使用过程中几乎无法分辨其与原版QQ的区别。这个项目不仅展示了C#的强大功能,还体现了开发者对用户界面设计、...

    C#sftp实现对文件的操作

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和服务器端软件时。SFTP(Secure File Transfer Protocol)是SSH(Secure Shell)的一部分,用于在不安全网络上安全地传输文件。本篇文章将深入...

    C#文件夹加密

    总之,“C#文件夹加密”是一个利用C#编程语言构建的工具,它通过加密技术和系统文件夹伪装,为用户提供了一种保护私人文件夹的安全方式。开发者需要熟悉C#语言、加密算法以及Windows操作系统的特性,以实现高效且...

    C#实现的网页用户登陆

    在C#编程中,实现网页用户登录功能是Web开发的基础,尤其在构建交互式网站时至关重要。这个小例子可能是一个简单的登录页面,用于展示基本的用户验证逻辑。下面将详细介绍C#如何在ASP.NET框架下创建网页用户登录系统...

    【初学者适用】C#连接Sql Server-实现登陆

    标题 "【初学者适用】C#连接Sql Server-实现登陆" 涉及到的核心知识点是C#编程语言与Microsoft SQL Server数据库之间的交互,特别是如何通过C#代码实现在应用程序中进行用户登录功能。这个主题对于刚开始学习C#和...

    C#实现邮件接收

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用程序以及服务器端应用时。在C#中实现邮件接收是一项常见的任务,它允许开发者构建功能强大的应用程序,如邮件客户端或自动邮件处理系统...

    C#修改及重置电脑密码DirectoryEntry实现方法

    在C#编程中,有时我们需要对用户的本地账户密码进行修改或重置,这通常涉及到操作系统级别的操作。在Windows系统中,我们可以使用`DirectoryEntry`类来实现这一功能,该类是.NET Framework中的System.Directory...

    C#编写的modbus poll(modbus主机)调试程序

    编写的C#程序包含modbus poll主机的01,02,03,04,05,06,15,16...不同的用户名由不同的使用权限,登录密码忘记了,具体可自行查看附带的mdf数据库文件,同时代码附带课程设计报告书,程序的所有功能均能在报告书中找到

    C#用户登录界面代码

    在C#编程环境中,开发一个用户登录界面是学习和实践中常见的任务。这个“C#用户登录界面代码”项目提供了一个基础的示例,适合初学者理解C#窗口应用程序(WinForms)的创建以及如何处理用户输入。下面我们将深入探讨...

    C#实现的简单登录界面实例Ky_Login.rar

    8. **重置密码功能**:由于MD5加密的不可逆性,如果用户忘记密码,系统通常会提供重置功能。这可能涉及到发送验证邮件或短信到用户注册的联系方式,用户通过验证后才能设置新密码。在实现过程中,开发者需要考虑如何...

    C# 学习编程---练习

    在C#编程学习中,实践是非常重要的一部分。这个练习项目模拟了一个类似于QQ登录的界面,旨在帮助初学者掌握和巩固一些关键的C#基础知识。在这个项目中,你会遇到以下几个核心知识点: 1. 正则表达式(Regex): 在...

    C#winform版学生信息管理系统

    在C#中,可以使用WinForm控件如TextBox、Label和Button来实现这些功能,并结合数据库验证用户身份,确保数据安全。密码通常需要进行加密处理,如使用SHA256等哈希算法,防止明文密码泄露。 接着,核心的数据管理...

    C#实现登录

    C#是一种强大的编程语言,尤其适用于构建桌面应用,而WinForms是.NET框架下的一个用户界面(UI)开发平台,使得开发者能够轻松创建功能丰富的图形用户界面。 首先,让我们了解登录界面的基本组成部分。登录界面通常...

Global site tag (gtag.js) - Google Analytics