2009-08-27 6 views
3

J'utilise le fournisseur d'appartenance asp.net dans une application. J'utilise aussi le contrôle "out of the box": PasswordRecovery.Mot de passe de l'abonnement Asp.Net Réinitialisations sans symboles

Mon client se plaint que les nouveaux mots de passe émis sont trop compliqués. par exemple. }> ;-(hYrS^OTfY

Y a-t-il des petits coups secs que je peux faire de sorte que les nouveaux mots de passe ne contiennent que des lettres et des chiffres

grâce

+0

J'ai regardé et je ne pouvais pas trouver un moyen d'affecter la fonctionnalité de ResetPassword() via le web.config Il y a de fortes chances que vous deviez créer votre propre solution au problème. – Greg

+1

Cet article a plus d'informations sur la façon de créer une solution personnalisée: http://dotnet.sys-con.com/node/837990 – Greg

+0

Merci Greg! Je posterai le code que je développe à partir de cet article plus tard cette semaine – aron

Répondre

4

Cela a fonctionné:!

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; 
     } 
    } 

}

Questions connexes