⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memberfindpassword.ascx.cs

📁 如果不使用IIS,请先运行 XSP.exe,待提示已侦听 8080端口后
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Security; 
using System.Web.UI;
using System.Web.UI.WebControls;
using DNNLite.Entites.Modules;
using Ader.TemplateEngine;
using DNNLite.Comm;
using System.Net.Mail;

public partial class admin_Portal_Member_MemberFindPassword : TempletPortalModuleBase ,IPostBackEventHandler 
{
    private string msg = string.Empty;
    private bool success = false;

    protected void Page_Load(object sender, EventArgs e)
    {
        
    }

    protected override void SetValues(IDictionary<string, object> bag)
    {
        bag.Add("msg", msg);
        bag.Add("eventsource", this.UniqueID);
        bag.Add("username", ClientID + "username");
        bag.Add("email", ClientID + "email");
        bag.Add("imagecode", ClientID + "imagecode");
    }

    protected override string TemplateFile
    {
        get 
        {
            if (!success)
            {
                return "~/Templets/Member/FindPwd.htm";
            }
            else
            {
                return "~/Templets/Member/FindPwdSuccess.htm";
            }
        }
    }

    private void FindPwd()
    {
        string username = Request[ClientID + "username"];
        string email = Request[ClientID + "email"];
        string imagecode = Request[ClientID + "imagecode"];

        if (imagecode == null || Session["CheckCode"] == null || imagecode.ToUpper() != Session["CheckCode"].ToString().ToUpper())
        {
            msg = "验证码错误!";
            return;
        }

        Session["CheckCode"] = "";

        MembershipUser user = Membership.GetUser(username);
        if (user == null)
        {
            msg = "没有找到用户";
            return;
        }

        if (user.Email != email)
        {
            msg = "您输入了错误的邮件地址";
            return;
        }

        string newpassword= ((DNNLiteMemberShipProvider )Membership.Provider).GeneratePassword() ; 


        try
        {
            SmtpClient client = new SmtpClient(Comm.PortalInfo.SMTPADDR,Comm.PortalInfo.SMTPPort   );
            
            //client.EnableSsl = false;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Credentials = new System.Net.NetworkCredential( Comm.PortalInfo.SMTPUser 
                , Comm.PortalInfo.SMTPPassword );

            MailMessage m = new MailMessage();
            m.Priority = MailPriority.High;

            m.From = new MailAddress( Comm.PortalInfo.SiteEmail );
            m.To.Add(new MailAddress( user.Email  ));

            m.IsBodyHtml = true;
            //m.Body = "<h1>发罗发罗</h1>"+ newpassword  ;

            m.Subject = "您在" +Comm.PortalInfo.PortalName +"找回密码"  ;
            m.BodyEncoding = System.Text.Encoding.UTF8 ;

            m.SubjectEncoding = System.Text.Encoding.UTF8;

            TemplateManager tm = TemplateManager.FromFile(Server.MapPath("~/Templets/Member/PassWordMail.htm"));
            tm.SetValue("username", user.UserName );
            tm.SetValue("loginurl", "");
            tm.SetValue("password", newpassword);

            m.Body = tm.Process();


            m.Headers.Add("charset", "utf-8");

            client.Send(m);
            

            msg = "您的邮件已发送!";
            

        }
        catch (Exception ex)
        {
            msg = "不能给您的邮箱发送邮件\n"+ ex.Message  ;
            return;
        }

        try
        {
            lock (Membership.Provider)
            {
                try
                {
                    ((DNNLiteMemberShipProvider)Membership.Provider).SpecifyPassword =
                        delegate() { return newpassword ; };

                    Membership.Provider.ResetPassword( user.UserName   , "");
                }
                catch (Exception ex)
                {
                    ((DNNLiteMemberShipProvider)Membership.Provider).SpecifyPassword = null;
                    throw ex;
                }
            }
        }
        catch (Exception ex)
        {
            msg = ex.Message;
            return;
        }
        success = true;

    }

    #region IPostBackEventHandler 成员

    public void RaisePostBackEvent(string eventArgument)
    {
        FindPwd();
    }

    #endregion
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -