0

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>
 }

何かご意見は?

4

3 に答える 3

0

モデルのユーザーが RegularUser Role にあるかどうかを確認することをお勧めします:

@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")){}

それが助けになることを願っています

于 2013-06-26T07:48:26.303 に答える
0

ロールごとにコンテンツを表示したい場合。これを試して

 @if (Request.IsAuthenticated && HttpContext.Current.User.IsInRole("Admin"))
  { 
       //show all profiles
  }
  else
  {
       //show only regular users
  }
于 2013-06-26T07:49:05.890 に答える
0

for each ループがそのロールの正しいユーザーを列挙しているため、機能していません。しかし、ユーザー名をどこにも出力していません。含める場合

@FirstName

それぞれの内部には、ユーザーが表示されます。

于 2013-06-26T07:44:34.497 に答える