Как обслуживать страницы с помощью файлового провайдера с контроллера?

У меня есть Asp Net Core и хотя у меня есть контроллеры, которые представляют собой простые API звонки, которые я тоже хочу использовать FileProviderдля обслуживания страниц.

Как я могу перенаправить запрос страницы на контроллер (проверить учетные данные) и обслужить его? Я также должен разветвлять конвейер, чтобы я мог служить простымjsonс.

Пока мой файловый провайдер обслуживается всеми, кто его запрашивает. Как мне использовать его с контроллера (добавляя дополнительную логику защиты к запросу)?

Запускать

  public void Configure(IApplicationBuilder app) {

            app.MapWhen(x => x.Request.Path.Value.Contains("pages"), x => {
               PhysicalFileProvider provider = new PhysicalFileProvider([some path]);
               DefaultFilesOptions options = new DefaultFilesOptions() {
                  DefaultFileNames = new List<string> { "index.html" },
                  FileProvider = provider
               };

               x.UseDefaultFiles(options);
               x.UseStaticFiles(new StaticFileOptions {
                  RequestPath = "index.html",
                  FileProvider = provider
               });
               x.UseMvc();
            });
            app.UseMvc();
}

PageController

public class PageController:Controller {
        [HttpGet]
        [Route("/pages/index.html")]
        public async Task<File> ServeIndexAsync() {
            //logic to check if user has access

         }
        [HttpGet]
        [Route("/pages/data.html")]
        public async Task<File> ServeDataAsync()
        {
        }
}

Контроллер API

Это обычный контроллер, логика которого будет использоваться всякий раз, когда кто-то запрашивает не-страничный запрос:

public NormalController:Controller
{
   [HttpGet]
   [Route("/get-data")]
   public async Task<string> GetDataAsync()
   { 
      return "some data";
   }

}

PS Я не знаю, какой тип возвратаPageController методы должны быть, если они возвращают файлы?

0 ответов

Другие вопросы по тегам