Asp.Net MVC Identity without email

Đôi khi chúng ta không dùng đến trường email trong đăng ký người dùng, mặc định trường này bắt buộc phải nhập và UNIQUE trong Asp.Net MVC Identity.

Để cho phép người dùng đăng ký tài khoản không dùng đến địa chỉ email, bạn làm cách sau:

Mở IdentityConfig.cs và thay đổi giá trị thiết lập RequireUniqueEmail = false theo dưới đây

public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) 
 {
 var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<ApplicationDbContext>()));
 // Configure validation logic for usernames
 manager.UserValidator = new UserValidator<ApplicationUser>(manager)
 {
 AllowOnlyAlphanumericUserNames = false,
 RequireUniqueEmail = false
 };
...

Lưu lại và chạy kiểm tra kết quả.

 

Advertisements

Role based security in ASP.NET MVC5

Bài này hướng dẫn xây dựng xây dựng Role based security trong ASP.NET MVC5 kết hợp ASP.NET Identity có fix lỗi (nếu tham khảo hướng dẫn của các bài viết).

Bài này hoàn thành gồm các chức năng:

  • Register
  • Create a new role 
  • AddUserToRole
  • Edit role
  • Delete role
  • List all roles
  • List all roles was assigned for the user
  • Update role

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult RoleAddToUser(string UserName, string RoleName)
{
ApplicationUser user = context.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
//var account = new AccountController();
//account.UserManager.AddToRoleAsync(user.Id, RoleName);
if (user != null) UserManager.AddToRole(user.Id, RoleName);
ViewBag.ResultMessage = “Role created successfully !”;

// prepopulat roles for the view dropdown
var list = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList();
ViewBag.Roles = list;

return View(“ManageUserRoles”);
}
public ApplicationUserManager UserManager
{
get { return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); }
private set {_userManager = value; }
}
private ApplicationUserManager _userManager;

Link download mã nguồn