ASP.NET MVC 응용 프로그램에서 ASP.NET ID를 사용하고 있습니다. 내 문제는 역할에 사용자를 추가하는 동안 발생합니다. 예외는 없지만 um.AddToRole()의 결과로 db 엔트리가 AspNetUserRoles 테이블에 추가되지 않습니다. 내 작업 방법은 다음과 같습니다AddToRole() 메서드가 ASP.NET ID에서 db 항목을 가져 오지 않습니다.
private UserManager<ApplicationUser> um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
은 무엇 응용 프로그램 동작의 종류의 이유가 될 수 있습니다
public ActionResult GrantAdmin(string id)
{
ApplicationUser user = um.FindById(id);
if (!rm.RoleExists("admin"))
{
rm.Create(new IdentityRole("admin"));
}
um.AddToRole(user.Id, "admin");
return View((object)user.UserName);
}
음이 UserManager 클래스의 목적은? 어떤 생각? 의 Web.config에서
public ApplicationDbContext()
: base("DefaultConnection")
{
}
그리고 기본 연결 : ASP.NET 신원 작업 할 때
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-RecommendationPlatform-20140404055015.mdf;Initial Catalog=aspnet-RecommendationPlatform-20140404055015;Integrated Security=True" providerName="System.Data.SqlClient" />
이것은 이상한 질문처럼 들릴 것입니다.하지만 실행 후 SQL Management Studio 데이터베이스 목록을 새로 고치셨습니까? 거기에 당신이 의도 한 것과 다른 DB를보고있을 가능성이 있습니다, 그리고 거기에 없다면 그것은 그것을 생성하고 그 안에 사용자/역할을 추가했습니다. 나는 그것이 나에게도 일어났기 때문에 이것을 언급한다. – Darren
예, 그 가능성을 고려하고있었습니다. 그러나 나는 거기에서 그것을 전혀 볼 수 없다. 예외가없는 항목이 없으면 항목이 다른 곳에서 작성되고 있음을 알 수 있습니다. 그러나 왜 그런 식으로 동작하는지 알 수 없으며 올바른 db를 명시 적으로 @Darren으로 표시 할 수 있습니다. 이 문제를 어떻게 해결 했습니까? – magos
DbContext를 생성하는 코드를 표시 할 수 있습니까? 여기서 사용하고자하는 연결 문자열의 이름을 명시 적으로 설정합니다. – Darren