我尝试使用用户,某些角色初始化我的数据库,然后想要尝试将用户分配给该角色。我现在可以毫无问题地为用户和角色播种,但在尝试将用户添加到角色时,我会成为一个裁剪器。
这是我的
class ViewController {
var cvDataArray = cells = NSMutableArray.new()
func viewDidLoad() {
super.viewDidLoad()
cvDataArray.enumerateObjectsUsingBlock({(obj: AnyObject, idx: Int, stop: Bool) in var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("")
cell.textLabel.text = obj["title"]
cells.addObject(cell)
})
tableView.reloadData()
}
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return cells.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return cells.objectAtIndex(indexPath.row)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var cell: UITableViewCell = cells.objectAtIndex(indexPath.row)
}
}
答案 0 :(得分:0)
不要使用魔法字符串。将角色移到If范围之外,将角色添加到角色时,请使用role.Name。这样,你就不会遇到你现在遇到的问题,你的角色是"管理员"但是你要添加到" admin"。
答案 1 :(得分:0)
您正在调用需要数组的方法。我想你可能想要:
userManager.AddToRoleAsync(userToInsert.Id, "Admin");
或
userManager.AddToRolesAsync(userToInsert.Id, "Admin".ToArray());
答案 2 :(得分:0)
我认为您使用async
方法时遇到问题。要解决此问题,您可以编写以下代码之一:
改为使用AddToRole
扩展方法:
userManager.AddToRole(userToInsert.Id, "Admin");
致电Wait()
后致电AddToRoleAsync
:
userManager.AddToRoleAsync(userToInsert.Id, "Admin").Wait();
或使用async
/ await
模式:
public async Task Foo()
{
// other codes
await userManager.AddToRoleAsync(userToInsert.Id, "Admin");
}
答案 3 :(得分:0)
我发现我可以这样做
var userStore = new UserStore<ApplicationUser>(context);
var userManager = new UserManager<ApplicationUser>(userStore);
if(!context.Users.Any(t => t.UserName == "markabarmi@hotmail.com"))
{
var user = new ApplicationUser { UserName = "markabarmi@hotmail.com", Email = "markabarmi@hotmail.com" };
userManager.Create(user, "passw0d!");
context.Roles.AddOrUpdate(r => r.Name, new IdentityRole { Name = "Admin" });
context.SaveChanges();
userManager.AddToRole(user.Id, "Admin");
}
这对我很有用 感谢您的评论