1

https://github.com/rustd/AspnetIdentitySample에 제공된 샘플을 사용하여 사용자 정의 사용자 프로필 데이터를 만들었습니다.아이디 멤버쉽 롤 ASP.NET 4.5 MVC 클레임 기반 롤 추가

그러나 가입 할 때 새로 등록한 사용자에게 역할을 할당하는 방법을 모르겠습니다. 그것이 사용하는 것 같습니다 .net 4.5 클레임 기반 역할. 또한 Code First - Migrations를 사용하고 Roles, UserRoles와 같은 필요한 Membership 테이블을 생성합니다.

역할 테이블에 새 역할을 추가하고이 역할을 UserRoles 테이블에 항목이있는 새 사용자에게 할당하려고합니다.

정말 감사드립니다.

[HttpPost] 
     [AllowAnonymous] 
     [ValidateAntiForgeryToken] 
     public ActionResult Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       try 
       { 
        WebSecurity.CreateUserAndAccount(model.UserName, model.Password); 
        WebSecurity.Login(model.UserName, model.Password); 

         Roles.CreateRole("Role A");// add "Role A" 
         Roles.AddUserToRole(model.UserName, "Role A"); // user in role A 


        return RedirectToAction("Index", "Home"); 
       } 
       catch (MembershipCreateUserException e) 
       { 
        ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); 
       } 
      } 
      return View(model); 
     } 

답변

0

예를 들어, 당신은 당신의 등록 방법을 변경할 수있다? 역할이 DefaultConnection의 Role 테이블에 있는지 확인하십시오. 이번 여름에 BUILD 직전에 열린 회의에서 발표 한 데모에서 일한다고 가정합니까? 안드레이의 대답은 웹 구성 유틸리티를 사용하여 이전 회원 시스템에 의존한다고 나는 믿는다?

+0

이전에 시도했습니다. 도움이되지 않습니다. "역할 관리자 기능을 사용할 수 없습니다"역할 관리자 기능을 사용할 수 없습니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 시작된 위치에 대한 자세한 내용은 스택 추적을 검토하십시오. 코드에서. 예외 정보 : System.Configuration.Provider.ProviderException : Role Manager 기능이 활성화되지 않았습니다. – user2690280

+0

@ user2690280 web.config에 를 추가하십시오. –

+0

도 도움이되지 않습니다. 샘플 프로젝트 (https://github.com/rustd/AspnetIdentitySample)를 보면 사용자를 처리하는 별도의 멤버쉽 데이터베이스가 있으므로 회원 자격이 필요합니다 공급자 물건. – user2690280

0

는 IdentityConfig.Roles.AddUserToRole을보십시오 : 당신이 역할을 작성하고 새 사용자를 추가하려면 다음과 같이

0

var rm = new RoleManager (새 RoleStore (newApplicationDbContext())));

rm.Create (새 IdentityRole ("Admin")));

rm.Create (새 IdentityRole ("Finance"));

UserManager.AddToRole (user.Id, "Admin");