【问题标题】:Asp.Net Membership Password Resets without symbolsAsp.Net 会员密码重置没有符号
【发布时间】:2009-08-27 01:20:08
【问题描述】:

我在应用程序中使用 asp.net Membership Provider。 我也在使用“开箱即用”的 asp:PasswordRecovery 控件。

我的客户抱怨发出的新密码太复杂了。 例如}>;-(hYrS^OTfY

我可以做一些小的调整,使新密码只包含字母和数字吗?

谢谢!

【问题讨论】:

  • 我看了看,找不到通过 web.config 影响 ResetPassword() 功能的方法。您可能必须为问题创建自己的解决方案。
  • 这篇文章有更多关于如何创建自定义解决方案的信息:dotnet.sys-con.com/node/837990
  • 谢谢格雷格!我将在本周晚些时候发布我根据那篇文章开发的代码

标签: asp.net-membership membership sqlmembershipprovider


【解决方案1】:

这行得通:

    using System;
using System.Collections.Generic;
using System.Web.Profile;
using System.Web.Security;
using System.Text;

namespace TS.Common.MembershipProvider
{
    public class MembershipProvider : SqlMembershipProvider
    {
        /// Create an array of characters to user for password reset.
        /// Exclude confusing or ambiguous characters such as 1 0 l o i
        string[] characters = new string[] { "2", "3", "4", "5", "6", "7", "8",
            "9", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n",
            "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

        const int DefaultResetPasswordLength = 10;
        private int ResetPasswordLength;

        // Create a more user friendly password to avoid confusion when
        // trying to key in the new value
        public override string GeneratePassword()
        {
            string newPassword = string.Empty;
            System.Random rnd = new Random();

            for (int i = 0; i < ResetPasswordLength; i++)
            {
                newPassword +=
                characters[rnd.Next(characters.GetUpperBound(0))];
            }
            return newPassword;
        }
    }

}

【讨论】:

    猜你喜欢
    • 2011-02-06
    • 2010-12-27
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多