小编Rob*_*Rob的帖子

如何创建签名证书并在生产中的 IdentityServer4 中使用它?

IdentityServer4 文档站点上的大多数(全部?)示例代码使用AddDeveloperSigningCredential(),但建议AddSigningCredential()在生产中使用。我花了更多的时间来思考如何做到这一点。

如何创建签名证书并在生产中的 IdentityServer4 中使用它?

c# mmc x509 .net-core identityserver4

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

如何对 .NET Core 3.1 中使用 ExecuteSqlRawAsync 调用存储过程的函数进行单元测试?

我正在 ASP.NET Core 3.1 中编写 API,使用 EF Core 访问 SQL Server 数据库。我在 API 中有一个函数,需要调用带有多个输入参数和一个输出参数的存储过程。该函数的简化版本如下。

我正在使用DbContextwith.UseInMemoryDatabase()进行其他测试,但内存数据库不能与存储过程一起使用。

(这个解决方案是数据库优先,而不是代码优先。如果需要,可以更改存储过程,但如果不需要的话会更好。我可以更改我的 C# 函数以不同的方式调用存储过程不过如果这有帮助的话。)

如何对该功能进行单元测试?

public class MyFoo : IFoo
{
    public ApplicationDbContext DbContext { get; }

    public MyFoo(ApplicationDbContext dbContext)
    {
        DbContext = dbContext;
    }

    public async Task<bool> GetMyStoredProcResult(string val1, string val2, string val3, string val4, string val5)
    {
        // input validation removed for brevity
        var p1 = new SqlParameter
        {
            ParameterName = "p1",
            DbType = System.Data.DbType.String,
            Direction = System.Data.ParameterDirection.Input,
            Value = …
Run Code Online (Sandbox Code Playgroud)

stored-procedures xunit.net entity-framework-core asp.net-core asp.net-core-3.1

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

当浏览器刷新并且 cookie 的令牌无效时,如何在 Blazor Server 中处理用户 OIDC 令牌?

Microsoft 建议不要HttpContext在 Blazor Server 中使用(此处)。为了解决如何将用户令牌传递到 Blazor Server 应用程序的问题,Microsoft 建议将令牌存储在服务中Scoped此处)。Jon McGuire\xe2\x80\x99s 博客建议采用类似的方法将令牌存储在Cache此处)中。

\n

只要用户保持在同一个 Blazor 服务器连接中,上述 Microsoft\xe2\x80\x99s 方法就可以正常工作。但是,如果access_token刷新并且用户通过按 F5 或将 URL 粘贴到地址栏中来重新加载页面,则会尝试从 cookie 中检索令牌。此时, cookie中的access_tokenrefresh_token不再有效了。Jon McGuire 在他的博客文章末尾提到了这个问题,并将其称为 Stale Cookies(此处)。他给出了有关可能的解决方案的提示,但对实施说明却很少提及。该帖子的底部有许多来自无法实施解决方案的人的评论,但没有提出明显的可行解决方案。我花了很多时间寻找解决方案,但我发现人们都在寻求解决方案,但没有收到任何有效的答案。

\n

找到了一个似乎运行良好并且似乎相当有原则的解决方案后,我认为可能值得在这里分享我的解决方案。我欢迎任何建设性的批评或对任何重大改进的建议。

\n

oauth access-token openid-connect refresh-token blazor-server-side

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