1
등록 된 사용자에게 기본 역할을 자동으로 할당하는 방법은 무엇입니까?자동으로 기본 역할 할당
[ProviderException: The role 'Member' was not found.]
이 내가 할 것입니다 : 나는이 노력하고있어하지만 작동하지 않습니다와 나는 오류를 받고 있어요
씨는 처음부터 존재하므로 내 기본 역할 :
// Configuration.cs, Seed method.
if (!context.Roles.Any(r => r.Name == "Member"))
{
var store = new RoleStore<IdentityRole>(context);
var manager = new RoleManager<IdentityRole>(store);
var role = new IdentityRole { Name = "Member" };
manager.Create(role); // Member role gets created in AspNetRoles table.
}
갱신 데이터베이스 후보다
는, 그 역할에 등록 된 사용자를 추가
// AccountController, Register method (POST).
var user = new ApplicationUser { ... }
if (.. Succeeded)
{
..
if (!Roles.IsUserInRole(user.UserName, "Member"))
Roles.AddUserToRole(user.UserName, "Member");
return RedirectToAction("Index", "Home");
}
새로운 계정을 등록, I 오류 :
[ProviderException: The role 'Member' was not found.] // Member exits in AspNetRoles
Line 176: if (!Roles.IsUserInRole(user.UserName, "Member"))
Line 177: Roles.AddUserToRole(user.UserName, "Member");
마법처럼 일했다 : 아직 수행하지 않으면
, 당신은
async
/await
사용하는 비동기 작업을 작성해야합니다! 내 시드 방법이 잘못된 역할 관리자를 사용하고 있습니까, 아니면 그렇게 남겨 둘 수 있습니까? – user3231419@ user3231419 : 아니요, RoleManager을 사용하고 있습니다. 따라서 올바른 역할을하는 'RoleManager '이 있습니다. 'Webpages_Roles' 테이블이 아닌 AspNetRoles 테이블에 나타나는 역할 ... –
ChrFin
사용에 약간의 문제가 있음을 발견했습니다. 이 방법 : 새 사용자를 등록한 후에 사용자는 데이터베이스의 "Member"-role에 할당되지만 아직 활성 사용자가 구성원인지 확인하는 _Layout.cshtml 페이지에는 지정되지 않습니다. 그것은 내가 로그 아웃하고 다시 로그인 할 때 사용자가 회원 역할을 가지고 있다는 것을 인식하고 무엇이 잘못되었는지를 알고 있습니까? – user3231419