У меня возникают проблемы с использованием новой системы идентификации в MVC 5, моя цель - использовать User.IsinRole( "RoleName" ) в Views. Например:
@if(User.IsInRole("Administrator"))
{
<li>@Html.ActionLink("Admin", "Index", "Admin")</li>
}
Это помещается на главную страницу макета, которая попадает при запуске приложения. При этом я получаю следующую ошибку:
"Исключение типа" System.Web.HttpException "произошло в System.Web.dll, но не было обработано в коде пользователя
Дополнительная информация: невозможно подключиться к базе данных SQL Server. "
Я нашел поиск высокого и низкого для решения этого вопроса, общим решением является либо включение "[InitializeSimpleMembership]" в верхней части контроллера, либо инициализация соединения с базой данных вручную при запуске приложения. (С помощью WebSecurity.InitializeDatabaseConnection). Оба этих метода, похоже, не распознаются MVC 5.
Я также попытался обойти это, создав кучу беспорядочного кода в любое время, когда я возвращаю представление, чтобы заполнить ViewBag с помощью логина IsAdmin, используя Aspnet.Identity.UserManager для определения ролей. Хотя это работает не так, как я чувствую, что должен делать что-то.
Возможно, стоит отметить, но я не испытываю этих проблем с доступом к User.IsInRole на бэкэнд, это определенно кажется проблемой инициализации.