0

Dans mon fournisseur de bateau de membre personnalisé J'ai fourni la mise en œuvre du ValidateUser et les choses étaient bien jusqu'à présent, mais maintenant tout à coup PasswordFormat ont commencé à jeterNotImplementedException lancée par PasswordFormat en mesure fournisseur de membre

NotImplementedException était non gérée par le code utilisateur

Il n'y a aucun changement dans mon web.config ou mon adhésion personnalisée. Certaines réponses de débordement de pile se référant à l'ajout du gestionnaire de rôles sous system.web dans Web.config, mais cela n'a pas fonctionné pour moi. En outre, j'ai essayé la réponse suggérée par Josh here mais toujours aucune différence. J'utilise l'encodage décimal Hexa.

Aucun autre à part ValidateUser est mis en œuvre dans mon adhésion personnalisée, qui est le suivant

public override bool ValidateUser(string username, string password) 
    { 
     LoginModel model = new LoginModel 
     { 
      UserName = username, 
      Password = password, 
      ErrorMessage = "" 
     }; 

     User user = UserManager.AuthenticateUser(model); 

     if (user != null) 
     { 
      HttpContext.Current.Items.Add("User", user); 
      return true; 
     } 

     return false; 
    } 

Répondre

0

Partager ma solution ici au cas où si quelqu'un d'autre a besoin il.

La valeur PasswordFormat peut être définie dans web config, puis fournir l'implémentation en lisant sa valeur dans PasswordFormat de MembershipPasswordFormat comme expliqué here.

public override MembershipPasswordFormat PasswordFormat 
    { 
     string temp_format = config["passwordFormat"]; 
     if (temp_format == null) 
     { 
      temp_format = "Hashed"; 
     } 

     switch (temp_format) 
     { 
      case "Hashed": 
       passwordFormat = MembershipPasswordFormat.Hashed; 
       break; 
      case "Encrypted": 
       passwordFormat = MembershipPasswordFormat.Encrypted; 
       break; 
      case "Clear": 
       passwordFormat = MembershipPasswordFormat.Clear; 
       break; 
      default: 
       throw new ProviderException("Password format not supported."); 
     } 
    } 

Si quelqu'un ne veut pas définir la valeur dans web.config, il peut également être défini dans le mot de passe d'adhésion Format en tant que substance d'adhésion à peine tous les changements au cours de la durée de vie d'une application.