我正在尝试仅以RegularUser
角色显示用户的个人资料。只有管理员才能查看所有配置文件,无论角色如何。
这是我到目前为止在视图中所拥有的内容,但它似乎不起作用。关于它的一些事情看起来不对:
@string[] usersInRole = Roles.GetUsersInRole("RegularUser");
@foreach (var item in Model)
{
<ul>
@foreach (string FirstName in usersInRole)
{
<li>
<h3>@Html.DisplayFor(model => item.FullName)</h3>
@if (item.Image != null)
{
<img src="@Url.Content(item.Image)" alt="" />
}
else
{
<br />
}
</li>
}
</ul>
}
有什么想法吗?
答案 0 :(得分:0)
它不起作用,因为你的每个循环都枚举了该角色的正确用户。但是你没有在任何地方输出他们的用户名。如果你包括
@FirstName
每个人都会看到用户。
答案 1 :(得分:0)
我建议您检查模型中的用户是否处于RegularUser角色:
@string[] usersInRole = Roles.GetUsersInRole("RegularUser");
<ul>
@foreach (var item in Model)
{
if(usersInRole.Contains(item.Firstname))
{
<li>
<h3>@Html.DisplayFor(model => item.FullName)</h3>
@if (item.Image != null)
{
<img src="@Url.Content(item.Image)" alt="" />
}
else
{
<br />
}
</li>
}
}
</ul>
如果您想将此视图限制为管理员,可以使用:
@if(User.IsInRole("Administrator")){}
希望有所帮助
答案 2 :(得分:0)
如果要根据角色显示内容。 试试这个
@if (Request.IsAuthenticated && HttpContext.Current.User.IsInRole("Admin"))
{
//show all profiles
}
else
{
//show only regular users
}