R.P*_*rog 3 c# reactjs asp.net-core-mvc .net-core asp.net-core
我尝试向 .net Core 2.1 应用程序添加身份验证。从头开始:我们可以使用 VS 模板通过 React 创建新的 Web 应用程序。
在这个模板中我们可以看到:
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
spa.ApplicationBuilder.UseAuthentication();
if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});
Run Code Online (Sandbox Code Playgroud)
我还添加了身份验证控制器和带有登录/注册端点的视图。
如何添加拒绝访问 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");
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3259 次 |
| 最近记录: |