Tôi muốn sử dụng tính năng người dùng asp.net trong mvc 5, tôi thực hiện các bước sau:Cách sử dụng Vai trò trong danh tính người dùng trong MVC 5
1) tạo dự án mvc.
2) tạo cơ sở dữ liệu của riêng tôi và thay đổi ConnectionString ở dạng web.config: tới:
3) Tôi chạy dự án và tạo một người dùng mới để thêm vào bảng liên quan đến tôi cơ sở dữ liệu.
4) Tôi muốn thêm một vai trò cho một người dùng sau khi đăng ký một người sử dụng như mã này trong accountControler:
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
//******************* Add Role To User **************
if (!Roles.RoleExists("Member"))
Roles.CreateRole("Member");
Roles.AddUserToRole(model.Email, "Member");
//****************************************************
await SignInAsync(user, isPersistent: false);
// For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
// Send an email with this link
// string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
// var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
// await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
return RedirectToAction("Index", "Home");
}
else
{
AddErrors(result);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
5) tôi thêm
<roleManager enabled="true">
thành:
<system.web></system.web>
khi tôi tạo người dùng mới, người dùng của tôi đăng ký tốt nhưng người dùng không thêm vai trò và khi tôi thực hiện điều này, VS Tạo cơ sở dữ liệu mới trong App_Data với tên "ASPNETDB.MDF". vì vậy tôi tìm thấy một bài viết mới để giải thích về Cài đặt Provider Vai trò trong web.config và:
6) tôi thêm
<roleManager enabled="true">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" connectionStringName="DefaultConnection" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
thành:
<system.web></system.web>
nhưng khi tôi muốn đăng ký mới người dùng tôi đã tìm thấy lỗi này:
Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'.
Bây giờ tôi nghĩ rằng vấn đề của tôi là khi tôi thực hiện bước 3 l không hoàn toàn tạo cơ sở dữ liệu nhận dạng người dùng và thủ tục lưu trữ! Tôi có sử dụng đúng vai trò cho MVC 5 không? Làm ơn hãy giúp tôi giải quyết vấn đề này!
Thông thường những người có đại diện thấp không đặt nhiều nỗ lực trong việc viết câu hỏi của họ nhưng người đàn ông, bạn là một ngôi sao !! Upvoted cho câu hỏi rõ ràng !! – frenchie