J'utilise IdentityServer 3 pour l'authentification. Je stocke des utilisateurs dans la base de données SQL en utilisant le framework d'identité asp.net. L'équipe IndentityServer a fourni une bibliothèque IdentityManager.AspNetIdentity simple pour les administrateurs pour gérer les utilisateurs.Le courrier électronique ne peut pas être nul ou vide lors de la création d'un nouvel utilisateur?
J'ai suivi le video here et configuré mon application.
J'ai mon propre ApplicationUser
et ApplicationUserManager
classe comme ci-dessous
public class ApplicationUser : Microsoft.AspNet.Identity.EntityFramework.IdentityUser
{
}
public class ApplicationUserManager : Microsoft.AspNet.Identity.UserManager<ApplicationUser, string>
{
public ApplicationUserManager(ApplicationUserStore store, IDataProtectionProvider dataProtectionProvider)
: base(store)
{
// Configure validation logic for usernames
UserValidator = new UserValidator<ApplicationUser>(this)
{
AllowOnlyAlphanumericUserNames = false,
RequireUniqueEmail = true
};
// Configure validation logic for passwords
PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = true,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = true,
};
// Configure user lockout defaults
UserLockoutEnabledByDefault = true;
DefaultAccountLockoutTimeSpan = TimeSpan.FromMinutes(5);
MaxFailedAccessAttemptsBeforeLockout = 5;
EmailService = new EmailService();
SmsService = new SmsService();
if (dataProtectionProvider != null)
{
UserTokenProvider =
new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("UserToken"));
}
}
}
Lorsque je tente de créer l'utilisateur, je reçois une erreur
email ne peut être nul ou vide.
Je peux me débarrasser de cette erreur en mettant RequireUniqueEmail
-false
en ApplicationUserManager
. Cependant, ce n'est pas mon exigence. Je veux garder RequireUniqueEmail
à true
Question
Comment puis-je obtenir le champ d'adresse e-mail apparaisse sur Créer une nouvelle page de l'utilisateur. Notez que ApplicationUser
est dérivé de IdentityUser
qui a déjà la propriété Email. Donc, je ne suis pas sûr pourquoi il n'apparaît pas sur créer une nouvelle page utilisateur?
Mise à jour 1
Alors j'ai regardé le code pour new user in github, mais son développé angulaire. Je ne suis pas familier avec la syntaxe angulaire :(et comment le modèle est passé à voir.Je ne suis pas sûr de ce que je dois faire dans l'application grand public pour activer le champ email sur le nouvel écran de l'utilisateur