我尝试向 .net Core 2.1 应用程序添加身份验证。
从头开始:我们可以使用 VS 模板通过 React 创建新的 Web 应用程序。
在这个模板中我们可以看到:
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
spa.ApplicationBuilder.UseAuthentication();
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
我还添加了身份验证控制器和带有登录/注册端点的视图。
如何添加拒绝访问 SPA 直到我们登录应用程序的逻辑?
我知道如何使用 asp.net 身份监管,但对于这个 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");
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)