Nelle lezioni precedenti abbiamo visto le tabelle create dall’Entity Framework per gestire utenti e ruoli. Avete registrato un utente ed eseguito un login. Facciamo qualche personalizzazione.
Regole delle password.
Potete cambiare tali regole nel file IdentityConfig.cs nella directory App_Start. Nella funzione Create della classe ApplicationUserManager, trovate :
//REGOLE DI COSTRUZIONE PASSWORD
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false, //RequireNonLetterOrDigit = true,
RequireDigit = false,
//RequireDigit = true,
RequireLowercase = false,
//RequireLowercase = true,
RequireUppercase = false,
//RequireUppercase = true,
};
Potete vedere un impostazione meno restrittiva delle password. Commentati vi vedete i valori di sicurezza di default.
Inserimento di Ruoli e Utenti via codice.
Il nostro obbiettivo e quello che il programma crei per noi i ruoli che andremo a gestire nel database e anche un utente “nostro”, senza dover effettuare una prima registrazione.:un nostro utente amministratore creato in automatico.
Nel file Startup.cs troviamo una classe eseguita alla partenza dell’applicazione.
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
In questa funzione, inseriamo anche la chiamata ad una nostra funzione createRolesandUsers();
private void createRolesandUsers()
{
ApplicationDbContext context = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
// In Startup iam creating first Admin Role and creating a default Admin User
if (!roleManager.RoleExists("Admin"))
{
// first we create Admin rool
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "Admin";
roleManager.Create(role);
//Here we create a Admin super user who will maintain the website
var user = new ApplicationUser();
user.UserName = "myUser";
user.Email = "myuser@mcontoso.com";
string userPWD = "123456789";
var chkUser = UserManager.Create(user, userPWD);
//Add default User to Role Admin
if (chkUser.Succeeded)
{
var result1 = UserManager.AddToRole(user.Id, "Admin");
}
}
// creating Creating Manager role
if (!roleManager.RoleExists("Teacher"))
{
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "Teacher";
roleManager.Create(role);
}
// creating Creating Employee role
if (!roleManager.RoleExists("Student"))
{
var role = new Microsoft.AspNet.Identity.EntityFramework.IdentityRole();
role.Name = "Student";
roleManager.Create(role);
}
}
Lanciate l’applicazione e vedrete che potrete loggarvi con l’utente creato via codice.
Per una trattazione molto più dettagliata consiglio l’ottimo articolo di Syed Shanu su Code Project