小编Rik*_*ōhō的帖子

带有 React 的 ASP.NET Core 身份 SPA

我对在 React SPA 中使用 ASP.NET Core Identity 感到困惑和迷茫。

我已经多次阅读有关 ASP.NET Core Identity 的 Microsoft 文档,主要集中在Identity with SPA 部分,但我必须承认我仍然不清楚如何将 React SPA 与 ASP.NET Core Identity 绑定。

这些是我偶然发现的拦截器:

  • 该文档假设我想使用IdentityServer,但我没有。我更喜欢Openiddict,但我不知道如何切换。最糟糕的是,我对 IdentityServer 或 Openiddict 的作用并不完全清楚。我知道他们为 JWT 令牌提供 OpenId 连接并保护我的 REST 端点,但他们如何做到这一点对我来说仍然不清楚。

  • 专注于 React SPA 的 Microsoft 文档都使用“方便的”托管 React SPA 和 API 后端作为一个单元。这很不幸,因为我不想要那样。我的 React SPA 与 API 完全解耦并分离,它们将单独托管。总而言之,我不希望我的 React SPA 与 API 后端在同一个解决方案中。

  • Microsoft 文档中的大多数示例使用实体框架作为 ORM。我不会。我将改用 Dapper。好消息是,有一节更好地解释了 ASP.NET Core Identity 的自定义存储提供程序,而且我正在研究 ASP.NET Core …

reactjs identityserver3 asp.net-core openiddict asp.net-core-identity

11
推荐指数
1
解决办法
706
查看次数

为什么代码覆盖率在 ReSharper 中不起作用?

我已经在 Visual Studio 2019 中安装了 JetBrains 的 DotCover 和 ReSharper。

不幸的是,DotCover 代码覆盖率似乎不起作用。我有这个示例类:使用系统;

namespace ClassLibrary1
{
    public class Class1
    {
        public int X { get; set; }
        public int Y { get; set; }
        public int Division()
        {
            return X / Y;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个示例单元测试:

using ClassLibrary1;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            var c = new Class1 {X = 10, Y = 2};
            var d = c.Division();
            Assert.AreEqual(d, 5);
        } …
Run Code Online (Sandbox Code Playgroud)

c# resharper unit-testing visual-studio dotcover

7
推荐指数
1
解决办法
2236
查看次数

6
推荐指数
2
解决办法
1735
查看次数

当用户未登录应用程序时,使用 React 路由重定向的正确方法是什么?

在 React SPA 中,我在 /src/pages/ 文件夹下有一组“页面”。

入口点页面是/src/文件夹下的一个index.js文件,我在这里定义了一个路由器const是这样的:

const routing = (
  <Router>
    <div>
      <Switch>
        <Route path="/signIn" component={SignIn} />
        <Route exact path="/" component={Homepage} />
        <Route path="/page1" component={Page1} />
        <Route path="/page2" component={Page2} />
        <Route path="/page3" component={Page3} />
        <Route component={NotFound} />
      </Switch>
    </div>
  </Router>
Run Code Online (Sandbox Code Playgroud)

它工作得很好。所有页面都可以像“ https://mysuperapp.com/page2 ”一样导航,它将呈现 Page2 React 组件。

当我合并用户会话管理(登录、注销)时会出现问题。如果用户未登录应用程序,则所有页面都应自动重定向到 /signIn页面。反之亦然,如果用户已经登录,如果访问/signIn页面,它应该自动重定向到根主页。

现在,我已经通过添加以下代码来实现这一切页面,右边的渲染()方法在组件声明后,像这样的:

class Page2 extends React.Component {
  render() {
    if (UserProfile.getUserSessionStatus() !== "logged") {
      this.props.history.push("/signIn");
    } …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-router

1
推荐指数
1
解决办法
3669
查看次数