@Parsifal31017
Программист

Что мне нужно вписать в код авторизации на основе ролей в ASP.NET Core?

Здравствуйте, я делаю проект и мне нужно сделать так что бы не аутентифицированным пользователям был доступен только режим read-only (доступен поиск, недоступно создание компаний, недоступны комментарии, лайки и рейтинги) и Аутентифицированные пользователи имеют доступ ко всему, кроме админки. Я хочу сделать это с помощью авторизации на основе ролей в ASP.NET Core - https://docs.microsoft.com/ru-ru/aspnet/core/secur.... Но я не знаю что писать внутри.
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyWebSite.Models
{
    [Authorize(Roles = "User")]
    public class UserController : Controller
    {
        // что здесь писать?
    }
}


using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyWebSite.Models
{
    [Authorize(Roles = "Administrator")]
    public class AdministratorController : Controller
    {
        // что здесь писать?
    }
}


using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace MyWebSite.Models
{
    [Authorize]
    public class VisitorsController : Controller
    {
        public ActionResult SetTime()
        {
             // что здесь писать?
        }

        [AllowAnonymous]
        public ActionResult Login()
        {
             // что здесь писать?
        }
    }
}

Вот на всякий случай ссылка на Git - https://github.com/Parsifal31017/MyWebSite.git
Заранее спасибо.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 2
@vabka Куратор тега C#
Токсичный
бизнес-логику свою писать. Вы уже "объяснили" аспнету, что к этим методам могут получить доступ только пользователи с определённой ролью.
Ответ написан
yarosroman
@yarosroman Куратор тега C#
C# the best
Создайте просто новый проект, с авторизацией по пользователям, и посмотрите внутри него, как все сделано.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
firedragon
@firedragon
Senior .NET developer
Хох.
https://docs.microsoft.com/ru-ru/aspnet/web-api/ov...
https://identityserver4.readthedocs.io/en/latest/

Рекомендую впрочем использовать AZURE AD это быстро и не особо напряжно
Ответ написан
BasiC2k
@BasiC2k
if (!User.IsInRole("User")) { return; }

но по факту, у Вас здесь:
[Authorize(Roles = "User")]

уже идёт отсечка по роли.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы