Member 12867998 Ответов: 1

Как реализовать авторизацию в ASP.NET веб-приложение MVC 5.


Я просмотрел много сайтов и видео на Youtube. но не смог понять и реализовать в своем проекте должным образом. Кто-нибудь может сказать мне, пожалуйста, как работать с авторизацией(не аутентификацией) в asp.net веб-приложение mvc 5?

Что я уже пробовал:

Я предоставил аннотации типа [Authorize] & [AllowAnonymous] к методу контроллера, доступ к которому может получить только администратор. Но я не могу этого сделать. Даже администратор не может получить доступ к этим страницам.

1 Ответов

Рейтинг:
2

Yovena Chintya

Поскольку вы сохранили роли пользователей в базе данных, вы должны проверить их в базе данных.
Поэтому постарайтесь включить этот метод в файле Global.эйсакс

protected void Application_AuthenticateRequest(object sender, EventArgs args)
    {
        if (Context.User != null)
        {
            IEnumerable<role> roles = new UsersService.UsersClient().GetUserRoles(
                                                    Context.User.Identity.Name);


            string[] rolesArray = new string[roles.Count()];
            for (int i = 0; i < roles.Count(); i++)
            {
                rolesArray[i] = roles.ElementAt(i).RoleName;
            }

            GenericPrincipal gp = new GenericPrincipal(Context.User.Identity, rolesArray);
            Context.User = gp;
        }
    }
</role>


Затем вы можете использовать это поверх методов actionResult в контроллерах.
[Authorize(Roles = "Administrator")]


Надеюсь, это поможет.


Member 12867998

Извините, но я не храню роли пользователей в таблице базы данных. Потому что мой TL сказал мне не хранить роли в этом. У меня есть жестко закодированные зашифрованные учетные данные для администратора.