Написание простейшего пользовательского аутентификации - PullRequest
0 голосов
/ 31 мая 2019

Я бы хотел написать свой пользовательский аутентификатор настолько просто, насколько это возможно

[MyAuth]
public async Task<string> Index()
{
    return "tested";
}

public class MyAuth : AuthorizeAttribute
{
    public MyAuth()
    {

    }

    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var context = context.HttpContext;

        if (!something)
        {
            return Forbidden;
        }

        return Ok;
    }
}

Но для этого кода требуется, чтобы я указал схему аутентификации

InvalidOperationException: никакой аутентификацииScheme не былоуказан, и DefaultChallengeScheme не найден.

Также, как я могу вставить контекст БД туда?

[MyAuth]
public async Task<string> Index()
{
    return "tested";
}

public class MyAuth : AuthorizeAttribute
{
    private readonly DatabaseContext context;

    public MyAuth(DatabaseContext db)
    {
        context = db;
    }

    public void OnAuthorization(AuthorizationFilterContext context)
    {
        var context = context.HttpContext;

        if (!something)
        {
            return Forbidden;
        }

        return Ok;
    }
}

или я действительно должен использовать свой собственный Middleware?но если да, то как я могу решить, отправляется ли запрос в конечную точку, для которой требуется [Authorize]?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...