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

2024-05-28

我尝试向 .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(使用前将#替换为@)

使用 ReactJS SPA 在 .net Core 中进行身份验证 的相关文章

随机推荐

  • GoogleMobileAds iOS 9 链接错误

    我按照以下步骤操作this https firebase google com docs admob ios quick start 由于我在安装 cocoapods 时遇到问题 我手动下载了 SDK zip 将其添加到项目中 它编译得很好
  • 打包器无法启动

    我想我在某个时候升级了节点 现在当我尝试使用以下命令运行打包程序时npm start它抱怨 npm start react native start Looks like you installed react native globall
  • 如何用Java RMI实现观察者模式?

    我有一个客户端在服务器上启动一个长时间运行的进程 我想定期向用户展示后台发生的情况 最简单的方法是轮询服务器 但我想知道是否没有办法为此实现观察者模式 不幸的是 我正在使用 RMI 与服务器通信 我担心我必须为此将我的客户端变成 RMI 服
  • 查询中的自定义属性

    鉴于下面的简化示例 我将如何访问查询集中的自定义 current status 属性 有可能吗 目前 我想列出所有当前事件并显示当前状态 我可以让属性显示在模板中 但我无法通过它来排序查询集 或者 我是否需要在 选择 中创建一个带有某种嵌套
  • 与 webpack 捆绑时如何为每个 .scss 文件提供变量.scss?

    这是我当前的项目目录结构 因为我想不出更好的方法来组织每个组件都有自己的用例 scss文件 但是 整个应用程序都提供主题 其中包括全局variables scss文件 目前 我正在导入variables scss文件位于每个组件的顶部 sc
  • 使用 gradle-retrolambda 和 Lightweight-Stream-API 过滤 Android 中的对象列表

    我正在尝试在我的 Android 应用程序中过滤 Java 中的对象列表 为此我遵循这个答案 https stackoverflow com a 13140130 3546389 Java 8建议 但由于Android SDK不支持Lamb
  • “npx create-react-app appname”不起作用

    当我跑步时npx create react app appname我收到以下错误消息 You are running create react app 4 0 0 which is behind the latest release 4 0
  • JS - 格式数字,保留 2 位小数,不四舍五入

    我会格式化一个小数点后两位的数字 而不进行四舍五入 所以我排除了 toFixed 函数 我已经尝试过这种方式 a 1 809999 b 27 94989 a Math floor a 100 100 gt 1 8 b Math floor
  • 使用 Java 1.4.2 时 jsch-0.1.42 中的“身份验证失败”

    我有一个简单的 Java 程序 它使用Jsch http www jcraft com jsch 连接到 SFTP 服务器 在 Java 1 4 2 上连接失败并出现 Auth failed 异常 但在 Java 1 7 上可以完美连接 t
  • 使用 android 将图像上传到 Flickr

    我需要将 Flickr 与 android 集成 我已完成身份验证 我需要将图像上传到 flickr 但我不知道如何执行相同操作 我参考文件 http www flickr com services api upload api html
  • pthread_self() 返回的线程 ID 与调用 gettid(2) 返回的内核线程 ID 不同

    这句话来自于pthread self 的手册页 http linux die net man 3 pthread self 那么 我应该根据什么来决定是否应该使用pthread self or gettid确定哪个线程正在运行该函数 两者都
  • 如何在水晶报表中按组求和

    我想得到水晶报表中各组的总和 Group OVERALL group 1 5 00 5 00 10 00 total group 1 20 00 group 2 10 00 25 00 15 00 total group 2 50 00 T
  • Vue 3 输入模式

    我想创建输入 如果模式不匹配 我可以用空字符替换输入的字符 模板
  • JTable过滤后正确的行号

    这是一个 try 块 用于过滤 table job 以查找与关键字匹配的行 但是 当表模型发生变化时 我很难获得正确的行索引 它始终选择第一行 即使过滤结果显示的行不是第一行 我知道你可以做一些事情fireTableDataChanged
  • 按日/月分组,并取 mongo 中当天/月评分的平均值

    我在 mongodb 中有这些数据 rating 4 ceatedAt ISODate 2016 08 08T15 32 41 262 0000 rating 3 createdAt ISODate 2016 08 08T15 32 41
  • 无法使用 MFMailComposeViewController 从应用程序发送电子邮件

    我在尝试从我的应用程序发送电子邮件时遇到了一些困难 我尝试了 iCodeBlog 中的这段代码 http icodeblog com 2009 11 18 iphone coding tutorial in application emai
  • ObjChildItem.Click() 在循环中无法正常工作

    I am using UFT One to test a Salesforce Contacts table with two rows that have clickable links Jim Bean and Marsha Smith
  • Android 上的多处理

    我一直在 Android 上执行一些测试 以验证并行化算法 如 FFT 的性能可以提高多少 我通过使用带有 JNI FFTW 的 pthread 和 Java 线程 来自 JTransforms 来实现这些算法 我没有像预期那样通过使用线程
  • 使用服务帐户插入 Google 日历条目

    我正在尝试使用服务帐户在 Google 日历上创建条目 我真的很接近这一点 但最后一行行不通 我得到一个500 Internal Service Error当我让它运行时 否则 程序运行时不会出错 无论其价值如何 The Calendar
  • 使用 ReactJS SPA 在 .net Core 中进行身份验证

    我尝试向 net Core 2 1 应用程序添加身份验证 从头开始 我们可以使用 VS 模板通过 React 创建新的 Web 应用程序 在这个模板中我们可以看到 app UseSpa spa gt spa Options SourcePa