gpt4 book ai didi

c# - 使用 ReactJS SPA 在 .net Core 中进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 20:49:51 25 4
gpt4 key购买 nike

我正在尝试向 .net Core 2.1 应用程序添加身份验证。从头开始:我们可以使用 VS 模板创建带有 React 的新 Web 应用程序。

在这个模板中我们可以看到:

app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
spa.ApplicationBuilder.UseAuthentication();


if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});

我还添加了 Auth Controller 和带有登录/注册端点的 View 。

在我们登录应用程序之前,我如何添加拒绝访问 SPA 的逻辑?

我知道如何使用 asp.net identity regullary,但对于这个 SPA,我需要建议。

最佳答案

在中间件中,您可以检查用户是否已通过身份验证,例如:

app.UseSpa(spa =>
{
spa.ApplicationBuilder.MapWhen(
(context)=>!context.User.Identity.IsAuthenticated,
ab => {
ab.Run(async (ctx )=> {
ctx.Response.StatusCode = 401;
//redirect to login page
ctx.Response.Headers.Add("Location", "....");
//await ctx.Response.WriteAsync("Authecation Failed");
});
}
);

spa.Options.SourcePath = "ClientApp";

if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});

关于c# - 使用 ReactJS SPA 在 .net Core 中进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56361859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com