У меня проблемы с использованием новой системы идентификации в MVC 5, моя цель — использовать User.IsinRole("RoleName") в представлениях. Например:
@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 на серверной части, это определенно похоже на проблему инициализации.