1. 程式人生 > >C#密碼找回功能的實現

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 [email protected] AND [email protected]
    AND [email protected])
 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#程式設計來實現 忘記密碼 功能的方法和程式碼,大家可以參照本文的思路自己寫出這個功能程式碼…… 以下是引用片段:int result  = user.GetBackPassword(LoginName.Text.Trim(), Question.Text.T

基於SpringBoot的密碼找回功能實現

tro uri md5 之前 nbsp 做的 我們 info 刪除 前言 最近在做自己的項目,其中有一個大家都知道的功能就是找回密碼。這裏分享一下我的做法,因為這中間實在有太多坑了。所以記錄一下。 使用技術:SpringBoot1.5.6、JPA、SpringSecurit

C# 傳送郵件功能實現

郵件傳送功能在OA以及一些網站驗證中很常用。下面是郵件傳送的一個函式,引數傳入收件人地址,郵件主題,郵件內容,讀者可根據自己的需求新增郵件的附件或者抄送人等。  /// <summary> /// 傳送郵件 /// </su

C# 一個計算器功能實現引發的思考

一.需求     計算器功能需求,這個眾所周知,很明確了。 二.步驟分析 1)初級實現計算器  static int Calculator(int a,int b,string str) { switch(str) {

c#web窗體登入介面登入註冊以及密碼找回傳送郵箱功能

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="register.aspx.cs" Inherits="ebook.Pages.register" %> <!DOCTYPE html> <html xmlns

C# Email郵件傳送,功能密碼找回或者重置功能

最近根據公司需求,寫個郵件傳送。   這裡面的傳入的地址資訊的引數都是經過加密的。  主要是保證使用者資訊的安全。using System; using System.Collections.Generic; using System.Configuration; usin

註冊/找回密碼功能中傳送手機驗證碼後倒計時效果的實現(基於vue)

註冊/找回密碼等功能中傳送手機驗證碼後倒計時效果的實現,基於vue、element-ui<template> <el-button size="small" type="prima

【轉·開發技術】C#實現 [忘記密碼] 通過【郵箱取回密碼功能

內容概括:通過引用Jmail元件實現 “通過郵箱找回密碼” 功能 前端頁面程式碼 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/

郵箱找回密碼功能實現思路

傳送郵件功能實現參見http://write.blog.csdn.net/postedit/53119376        當用戶找回密碼時,向用戶郵箱傳送一個連結,通過該連結使用者可以轉到密碼重置介面,為了防止非法使用者利用使用者名稱然後直接訪問該密碼重置介面修改使用者密

利用qemu-guest-agent實現重置密碼功能(測試中)

com install rpm etc cnblogs tps 1-1 利用 sta Windows虛擬機: 1.在宿主機上操作: wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo

SQL Server 實現類似C#中 PadLeft功能

left ret cnblogs alt div use sql eat pan 1 USE [Test] 2 GO 3 SET ANSI_NULLS ON 4 GO 5 SET QUOTED_IDENTIFIER ON 6 GO 7 --@column 表

登陸一個系統時,前端js實現的驗證,記住密碼功能

con hold div plain class submit nts 設置 發生 記住密碼部分: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta

[C#] .NET4.0中使用4.5中的 async/await 功能實現非同步

在.NET Framework 4.5中添加了新的非同步操作庫,但是在.NET Framework 4.0中卻無法使用。這時不免面臨著抉擇,到底是升級整個解決方案還是不使用呢?如果你的軟體還沒釋出出去,建議直接使用.NET Framework 4.5吧;但是如果已經發布了,又不想使用者重新升級框架到.NET

C#利用Lumisoft元件實現收郵解析郵件功能

一、 POP3協議簡介 1、什麼是POP3協議: 郵局協議(Post Office Protocol,簡稱POP)是TCP/IP協議族中的一員,由RFC 1939 定義。本協議主要用於支援使用客戶端遠端管理在伺服器上的電子郵件。最新版本為POP3,全名“Post Office Proto

ICMP->linux c PING功能實現

報文格式: \ 程式碼 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <

【資料結構】靜態順序表各種功能實現(C語言)

順序表的儲存方式 定義一個順序表 #define MAX_SIZE (100) typedef int DataType; typedef struct SeqList { DataType data[MAX_SIZE]; int siz

C Thread與委託實現定時重新整理資料功能

                     使用者需求:定時抓取ERP系統條碼已掃描未稽核單據1解決辦法: 由於採用Timer控制元件會消耗系統資源,故採用執行緒處理。 由於執行緒呼叫方法不支援控制元件處理模式,故採用委託方法實現。       bool bStop;        public DataTab

暴力破解密碼 - C++ 遞迴方法實現

問題描述:     暴力破解密碼     假設有一個 4 位字母密碼,每位密碼是 a~e 之間的小寫字母     你能否編寫一段程式碼,來暴力破解該密碼?(可重複排序)   #include &l

C語言單鏈表實現19個功能完全詳解

#include "stdafx.h" #include "stdio.h" #include <stdlib.h> #include "string.h"   typedef int elemType ;   /************************

C#窗體 登入實名註冊密碼找回

編寫窗體: 功能要求: 1,登陸(通過賬號和密碼登陸) 2,實名註冊(要求驗證18位身份證號,注意驗證時只需要驗證前17位是整數,最後一位是整數或者大寫X就行) 註冊項有:賬號,密碼,身份證號 3,密碼找回(通過註冊時的賬號和身份證號找回) P.S. 這個寫起來可