روش هایی که دوستان گفتن درست هستش ، اما کمی پیچیده هستن و روش راحتری هم هست .
داخل ApplicationUser ، یک Property جدید از نوع IEnumerable اضافه کنید :
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationU ser> manager)
{
ClaimsIdentity userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
return userIdentity;
}
public IEnumerable<string> RolesList { get; set; }
}
در نهایت داخل کنترلر و گرفتن تمام کاربران :
public ActionResult Index()
{
List<ApplicationUser> users = UserManager
.Users
.ToList();
foreach (ApplicationUser user in users)
user.RolesList = UserManager.GetRoles(user.Id);
return View(users);
}
و در ویو :
@foreach (ApplicationUser user in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => user.Email)
</td>
<td>
@Html.DisplayFor(modelItem => user.UserName)
</td>
<td>
@foreach (string role in user.RolesList)
{
@Html.DisplayFor(modelItem => role) <br />
}
</td>
</tr>
}
دانلود Sample این پروژه : http://uplod.ir/qvbnoiumck5v/IterateRoles.zip.htm