2013-06-26 3 views
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> 
} 

Любые мысли?

+0

Что у вас в категории «Модель»? –

+0

О да, модель содержит поля класса UserProfile. Он отлично работает и отображает профили, но я не могу фильтровать их по ролям. – nouptime

ответ

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> 

Если вы хотите LIMITE этого вида админ, вы можете использовать:

@if(User.IsInRole("Administrator")){} 

Надеется, что это поможет

+0

Самое потрясающее! 'if (usersInRole.Contains (item.Firstname))' исправил его. Я сделал это назад ха-ха. Бесконечно благодарен! – nouptime

+0

Добро пожаловать;) –

0

Это не работает, потому что для каждого цикла перечислены правильные пользователи для этой роли. Но вы не выводите их имя пользователя нигде. Если вы включили

@FirstName 

Внутри каждого вы увидите пользователей.

+0

Пробовал это, но не работал. Спасибо за ответ, хотя. – nouptime

0

Если вы хотите отобразить содержимое на основе роли. Попробуйте это

@if (Request.IsAuthenticated && HttpContext.Current.User.IsInRole("Admin")) 
    { 
     //show all profiles 
    } 
    else 
    { 
     //show only regular users 
    } 
+0

Я уже добавил эту функциональность, и я могу показать различный контент администраторам. Благодарю. – nouptime