Я новичок, чтобы реагировать, но не на разработку ядра приложения asp.net. Я пытаюсь создать реагирующее приложение с ядром asp.net + шаблон реагирования в visual studio. Я пытаюсь сначала выполнить маршрут Asp.Net MVC, чтобы вызвать действие контроллера с атрибутом [Authorize], чтобы убедиться, что пользователь аутентифицирован. У меня нет ничего, чтобы показать в представлении Asp.Net MVC. Я хочу немедленно перенаправить пользователя, чтобы он реагировал на маршрут по умолчанию, как только пользователь прошел аутентификацию через действие контроллера asp.net mvc. Существует ли какой-либо конкретный механизм маршрутизации для достижения этого.
Прямо сейчас мое приложение проходит через контроллер и действие, основанное на маршруте, и останавливается в представлении, определенном действием контроллера. Я пытаюсь понять, как перенаправить пользователя, чтобы использовать реагировать маршрут сейчас. Я пытался использовать return redirecttoaction и returnredirecttoroute, но безуспешно.
My Asp.Net Core MVC Action
[Authorize]
public ActionResult Index()
{
var IsAuthenticated = HttpContext.User.Identity.IsAuthenticated;
var UserName = "Guest";
if (IsAuthenticated)
{
UserName = HttpContext.User.Identity.Name;
}
TempData["userName"] = UserName;
//return View();
return Redirect("my react first page");
}
Я попытался вернуть Redirect ("моя первая реакция");
Метод моего файла запуска, используемый для маршрутизации
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseAuthentication();
//MVC Part. I am trying this to authorize as FIRST step
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=DataAccess}/{action=Index}/{id?}");
});
// React part I am trying this to be called once Authentication is done in controller action. Trying to call this as a SECOND step
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
}
Если я сделаю перенаправление и форсирую маршрут реакции, будут ли какие-либо проблемы, пропущенные функции маршрута реакции? Я вижу, что spa.UseReactDevelopmentServer (npmScript: "start"); занимает больше времени, показывая время ожидания, если я делаю перенаправление. Любое решение, где пользователь может быть перенаправлен на действие контроллера, выполняет всю авторизацию и использует механизм маршрутизации по умолчанию реакции?
Есть ли возможность сначала запустить реагирующий сервер и выполнить маршрутизацию, так как запуск сервера занимает больше времени, приводя к таймаутам.
Примечание. Для создания приложения я использовал Create-React-App.