如果为空,请忽略密码字段

时间:2014-01-20 16:47:31

标签: c# asp.net umbraco

我在我创建的网站上有一个“个人资料编辑”部分,允许用户更新他们的电子邮件地址和密码。它们运行良好,但目前,他们被迫更改密码。

我可以设置它,因此不需要任何字段,但信息会根据是否有输入进行更新吗?

目前,如果我没有输入密码,我就会收到此信息:

参数'newPassword'不能为空。

由于

using System;
using nForum.BusinessLogic;
using umbraco;
using umbraco.cms.businesslogic.member;
using System.Web.Security;

namespace nForum.usercontrols.nForum.membership
{
    public partial class ForumMemberProfileEdit : BaseForumUsercontrol
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)
            {
                LoadProfile();
            }
        }

        private void LoadProfile()
        {
            if (CurrentMember == null | IsBanned)
            {
                membereditprofile.Visible = false;
            }
            else
            {
                //We have a Member logged in fill the data
                tbEmail.Text = CurrentMember.MemberEmail;
            }
        }

        protected void BtnSubmitClick(object sender, EventArgs e)
        {
            btnSubmit.Enabled = false;
            var cMem = Member.GetCurrentMember();
            cMem.Email = tbEmail.Text;

            MembershipUser u;
            u = System.Web.Security.Membership.GetUser();
            u.ChangePassword(u.ResetPassword(), tbNewPassword.Text);

            //Save member
            cMem.Save();

            //Generate member Xml Cache
            cMem.XmlGenerate(new System.Xml.XmlDocument());

            // Show message
            Response.Redirect(string.Concat(CurrentPageAbsoluteUrl, "?m=", library.GetDictionaryItem("ProfileUpdated")));
        }
    }
}

和ASP

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ForumMemberProfileEdit.ascx.cs" Inherits="nForum.usercontrols.nForum.membership.ForumMemberProfileEdit" %>

<div id="membereditprofile" class="membereditprofile" runat="server">

            <dl class="form">

                <!-- E-mail field -->
                <dt><label for="<%= tbEmail.ClientID %>">Email</label></dt>
                <dd><asp:TextBox ToolTip="Enter email address" CssClass="required email" ID="tbEmail" runat="server" /></dd>

                <!-- New Password field -->
                <dt><label for="<%= tbNewPassword.ClientID %>">New Password</label></dt>
                <dd><asp:TextBox ToolTip="Enter your new password" CssClass="pass1" onkeyup="checkPass()" TextMode="password" ID="tbNewPassword" runat="server" /></dd>

                <!-- Confirm New Password field -->
                <dt><label for="<%= tbConfirmPassword.ClientID %>">Confirm Password</label></dt>
                <dd><asp:TextBox ToolTip="Confirm your new password" CssClass="pass2" onkeyup="checkPass()" TextMode="password" ID="tbConfirmPassword" runat="server" /></dd>

                <span id="confirmMessage" class="confirmMessage"></span>
                <asp:Label id="Msg" ForeColor="maroon" runat="server" />

                <!-- Compare Passwords -->
                <asp:CompareValidator ID="CompareValidator" runat="server" ControlToValidate="tbNewPassword" ControlToCompare="tbConfirmPassword" CssClass="hideError" ErrorMessage="Password does not match!" ></asp:CompareValidator>
                <!-- Compare Passwords -->
                <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tbConfirmPassword" ControlToCompare="tbNewPassword" CssClass="hideError" ErrorMessage="Password does not match!" ></asp:CompareValidator>

                <dt> </dt>
                <dd><asp:Button ID="btnSubmit" runat="server" Text="Update Profile" onclick="BtnSubmitClick" CssClass="btnSubmit" /></dd>

            </dl>

</div>

0 个答案:

没有答案
相关问题