我們不能將Owin和Entity framework 7一起添加。因爲我們這樣做,那麼Microsoft.AspNet.Identity.core 2.0.0.0和Microsoft.AspNet.Identity 3.0.0 Beta1之間將存在不明確之處。AspNet.Identity 3.0.0 Beta1ASP.NET 5 MVC 6和Entity Framework 7問題
因此,我無法在我的應用程序中實現角色提供程序來管理用戶角色。
面臨這個問題後,我取出Owin引用和使用的UserManager Microsoft.AspNet.Identity 3.0.0和EF 7,但UserManager.AddToRoleAsync(用戶,角色名)總是拋出異常,如下創建: -
InvalidOperationException:實體類型'Mozaics.DAL.Models.ApplicationUser'的實例無法跟蹤,因爲此類型的另一個 實例具有相同的密鑰已被跟蹤。對於 新實體考慮使用IIdentityGenerator生成唯一的 關鍵值。
代碼片段是這樣的。
public async Task<ActionResult> RoleAddToUser(string UserName, string RoleName)
{
var user = context.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();
var result = await UserManager.AddToRoleAsync(user, RoleName);
ViewBag.ResultMessage = "Role created successfully !";
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");
}
在Microsoft.AspNet .Identity.Core庫的方法是這樣的 UserManager.AddRoleToUserAsync(User.Id,RoleName) – sanjaypujari 2015-04-05 15:22:26
你是否是親屬d足以向我們提供您的'project.json'以及您的項目屬性中的運行時和'dnvm list'的輸出。謝謝 – 2015-11-26 14:05:30