Asp.Net Core PageStart.cshtml альтернатива? - PullRequest
0 голосов
/ 05 декабря 2018

Новое в Asp.Net Core MVC Я ищу способ убедиться, что пользователи не могут получить доступ к определенной папке и подпапкам, если не установлен определенный файл cookie.В Razor Pages я могу просто поместить файл PageStart.cshtml в папку, которая проверяет наличие куки и перенаправляет куда-то, если нет.

Как мне сделать что-то подобное?

Я думаюдолжен быть какой-то способ, так как проверка файлов cookie в каждой PageModel не очень СУХА:)

И да, я знаю о встроенной аутентификации / авторизации, но это не то, что я хочу.

Спасибо.:)

-

app.Use((context, next) => {
    var requestPath = context.Request.Path.Value;
    var cookies = context.Request.Cookies;
    if (cookies["AdminId"] == null && requestPath.StartsWith("/admin", StringComparison.CurrentCulture)) {
        //await next.Invoke();
        context.Response.Redirect("/");
    }
    return next.Invoke();
});

1 Ответ

0 голосов
/ 06 декабря 2018

Для перехвата HTTP-запроса на статический файл попробуйте следующий код перед app.UseStaticFiles();.

app.Use(async (context, next) => {
    var requestPath = context.Request.Path.Value;
    var cookies = context.Request.Cookies;
    if (!requestPath.StartsWith("/Home/About"))
    {
        await next.Invoke();
    }
    else
    {
        await context.Response.WriteAsync("Forbidden");
    }
});

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