У меня есть проект MVC, который позволяет моим пользователям добавлять пользователей и роли в таблицы AspNetRoles
и AspNetUsers
. Приложение использует Active Directory для аутентификации пользователей в представлении входа. В моей базе данных я добавил пользователя user123
к роли Administrators
, в моей базе данных. Я добавил следующую логику, чтобы сделать эту ссылку видимой для роли Administrators
в моей частичной регистрации.Как выполнить проверку подлинности в отношении пользователей и ролей ASPNET, хранящихся в моей базе данных?
@if (Roles.IsUserInRole("Administrators"))
{
@Html.ActionLink("Manage Accounts", "Index", "Roles")
}
Я также добавил это в свой web.config, чтобы создать экземпляр соединения поставщика роли с базой данных.
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="DefaultConnection"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
applicationName="MyApplicationName" />
</providers>
</roleManager>
Однако моя ссылка все еще невидимы для user123
, которые в соответствии с моей базе данных является членом Administrators
. Какова причина этого?
Крис, я аутентифицируюсь через LDAP. Я вхожу в мое приложение через учетные данные AD, и он может проверить, действительно ли имя пользователя и пароль. В моей частичной части входа используется идентификатор. Я считаю, что мой поставщик ролей настроен неправильно. Однако это первый случай, когда я попытался сделать что-то подобное, и я довольно новичок в MVC. – Skullomania
Я могу гарантировать, что ваш поставщик ролей настроен неправильно, потому что Identity не использует поставщиков ролей. –
ok ... Когда я удаляю строку из webconfig, как получить приложение для аутентификации с использованием ролей в базе данных? – Skullomania