熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

C#編程 忘記密碼功能的實現方法

2013-11-15 12:49:52  來源: ASP編程 

  本文將給出通過C#編程來實現 忘記密碼 功能的方法和代碼大家可以參照本文的思路自己寫出這個功能代碼……

  

  以下是引用片段
int result  = userGetBackPassword(LoginNameTextTrim()
 QuestionTextTrim()
    AnswerTextTrim() EmailText);

   if (result == )
   {
    MessageText = 您的密碼已發送請到郵箱查收;
    //userChangePassword(
   }
   else
   {
    MessageText = 您的輸入信息有誤!;
   }

 

public int GetBackPassword(string userName string question string answer
 string email)
  {
   object m_DBNull = ConvertDBNull;
   //獲得新的隨機密碼
   string newPassword = MakePassword();
   //定義存儲過程參數 
   SqlParameter[] para = {
   new SqlParameter(@userName userName)
   new SqlParameter(@question question)
   new SqlParameter(@answer answer)
   new SqlParameter(@newPassword newPassword)
   new SqlParameter(@result SqlDbTypeInt  ParameterDirectionOutput
           true    DataRowVersionDefault m_DBNull)
          };
   
   //執行存儲過程
   try
   {
    DALSQLHelperExecuteNonQuery(DALSQLHelperCONN_STRING 
CommandTypeStoredProcedure
     GetBackPwd para);
   }
   catch
   {
    throw new Exception(郵件無法發送!);
   }
   //獲得輸出參數的值
   int result = ConvertToInt(para[]Value);
   //如果密碼保護資料填寫正確
   if (result == )
   {
    //從nfig獲取發信人地址郵件標題郵件用戶名和密碼以及SmtpServer
    string sender = SystemConfigurationConfigurationSettings
AppSettings[mainSender];
    string title = SystemConfigurationConfigurationSettings
AppSettings[mailTitle];
    string mailUser =  SystemConfigurationConfigurationSettings
AppSettings[mailUser];
    string mailPwd = SystemConfigurationConfigurationSettings
AppSettings[mailPwd];
    string smtpServer = SystemConfigurationConfigurationSettings
AppSettings[mailSmtpServer];
    //發信
    try
    {
     MailCDOsendmail(sender email title 
您在eshop的密碼已找回新密碼為+newPassword
       mailUser mailPwd smtpServer);
    }
    catch(Exception ex)
    {
     throw new Exception(exMessage);
    }
   }

   return result;
  } 

 

//隨機生成密碼
  private static string MakePassword(int pwdLength)
  {
   //聲明要返回的字符串
   string tmpstr = ;
   //密碼中包含的字符數組
   string pwdchars=abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ;
   //數組索引隨機數
   int iRandNum;
   //隨機數生成器
   Random rnd = new Random();
   for(int i=;i<pwdLength;i++)
   {
    //Random類的Next方法生成一個指定范圍的隨機數
    iRandNum = rndNext(pwdcharsLength);
    //tmpstr隨機添加一個字符
    tmpstr += pwdchars[iRandNum];
   }
   return tmpstr;
  }

 

ALTER  PROCEDURE GetBackPwd
@question nvarchar()
@answer nvarchar()
@userName nvarchar()
@newPassword nvarchar()
@result int output
AS
 if exists (SELECT * FROM USERINFO WHERE USERNAME=@USERNAME AND
 QUESTION=@QUESTION
    AND ANSWER=@ANSWER)
 BEGIN
  SET @RESULT = 
  UPDATE USERINFO
  SET USERPWD = @newPassword
  WHERE userName = @userName
 END
 ELSE
 BEGIN
  SET @RESULT = 
 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= />


From:http://tw.wingwit.com/Article/program/ASP/201311/21715.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.