• Как выводить представления в зависимости от роли пользователя?

    @DSergeev Автор вопроса
    Допустим есть такая модель
    public class Category
        {
            public string Name{ get; set; }
            public Users User { get; set; } 
        }

    Когда пользователь с ролью админ создает эту категорию, он назначает ей пользователя. Нужно чтобы у роли User было право редактировать эту категорию, но только ее имя, чтоб он не мог изменить назначенного пользователя. Как в этом случае быть?
    Ответ написан
    Комментировать
  • Как скоординировать работу IAuthenticationFilter в asp.net mvc?

    @DSergeev
    Первое правило: не нужно делать свою реализацию [Authorize] т.к. вы лучше не сделаете, она будит полна дыр. Зачем делать свою? чем не устроила стандартная?
    [Authorize(Roles = "Administrator, User")]
    [Authorize(Users= "User1, User2")]
    Еще есть свойство Order которое устанавливает порядок выполнения.
    Ответ написан
  • Почему не выводятся вложенные категории (построение дерева ul li)?

    @DSergeev Автор вопроса
    Задачу решил.

    Рабочий код
    public static class TreeView
        {
            private static IEnumerable<Category> category;
    
            public static MvcHtmlString DisplayTree(this HtmlHelper html, IEnumerable<Category> collection)
            {
                category = collection;
    
                return new MvcHtmlString(NewMethod(null));
            }
    
            private static string NewMethod(int? parentId)
            {
                TagBuilder ul = new TagBuilder("ul");
    
                if (category.Any(x => x.ParentCategoryId == parentId))
                {
                    foreach (var item in category.Where(x => x.ParentCategoryId == parentId))
                    {
                        TagBuilder li = new TagBuilder("li");
                        li.SetInnerText(item.Name);
    
                        ul.InnerHtml += li.ToString();
    
                        ul.InnerHtml += NewMethod(item.Id);
                    }
                    return ul.ToString();
                }
    
                return "";
            }
        }


    p.s чет на этом тостере одни просмотры, а ответов 0. Даже блин посоветоваться не с кем, все молчат!
    Ответ написан
    Комментировать