Loading...
r3v3nan7 avatar r3v3nan7 365 Точки

ASP Net Role manager problem

Здравейте,

Имам проблем с Role manager-а. Искам да направя в страницата с постовете само администратор да може да вижда edit, delete менютата , а останалите потребители да могат да си виждат само details. За тази цел пробвах това във файл Views/Posts/index.cshtml

  @if (!Roles.IsUserInRole(User.Identity.Name, "Administrators"))
            {
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) 
            }


            @Html.ActionLink("Details", "Details", new {id = item.Id}) |

            @if (!Roles.IsUserInRole(User.Identity.Name, "Administrators"))
            {
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            }

 

Резултатът от това е

The Role Manager feature has not been enabled. -> http://imgur.com/a/MJy9y

Прегледах си базата с данни и имам дефинирана някаква роля администратор

Търсих информация и в stack overflow и там имаше някакви кодове да се пишат в web.config. Пробвах повечето

като всеки път rebuild-вах, но тази грешка си остана и махнах промените за да не ми счупят допълнително по някакъв начин

проекта. И сега съм отново в изходна позиция. Кодът (!Roles.IsUserInRole(User.Identity.Name, "Administrators") взех от слайда..

 

Благодаря предварително за помоща и отделеното време :)

 

 


 

 

0
Fundamentals Module 23/07/2016 17:16:40
ralitsa_d avatar ralitsa_d 171 Точки
Best Answer

Здравей, а добави ли [Authorize] в контролера на постовете? Трябва да го добавиш за създаване, едитване и изтриване на постовете, като за едит и изтриване добавяш Roles = "Administrators".

1
r3v3nan7 avatar r3v3nan7 365 Точки

Сложил съм ги да, но друг е въпросът дали правилно съм ги поставил

Затова слагам кода тук http://pastebin.com/jWNFsbgU

Ако някой види грешка да каже, защото наистина не съм убеден , че съм ги сложил правилно.

0
23/07/2016 19:26:01
ralitsa_d avatar ralitsa_d 171 Точки

Мисля, че разбрах къде е проблемът! Трябва да провериш и дали има автор на поста - ако няма - тогава ти хвърля грешката.

Пробвай това:

@if (User.IsInRole("Administrators") || (item.Author != null && User.Identity.Name == item.Author.UserName))
            {
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) @:|
                @Html.ActionLink("Delete", "Delete", new { id = item.Id }) @:|
            }
            
            @Html.ActionLink("Details", "Details", new { id=item.Id })

 

1
r3v3nan7 avatar r3v3nan7 365 Точки

Позна. Това е. Сега тръгна. Много благодаря на всички за помоща... 

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.