小编Eli*_*nti的帖子

忽略JWT Bearer令牌签名(即不验证令牌)

我有一个位于API网关后面的API。在将请求传递到API之前,API网关会验证承载令牌。

我的API使用asp.net core 2.0本机身份验证和基于声明的授权框架。从JWT令牌获取声明的艰巨工作是由中间件进行的Microsoft.AspNetCore.Authentication.JwtBearer

可以将该中间件配置为忽略令牌上的到期日期,并且还可以指定本地公共密钥,这样就不必联系令牌颁发机构来获取它,而是可以仅禁用令牌验证。令牌?

这将允许将未签名的令牌用于开发中的临时测试,并防止生产中的双重验证(网关和API)。

c# asp.net-core

8
推荐指数
2
解决办法
4176
查看次数

有条件地解决Unity中的命名实现

Unity允许您命名同一接口的不同实现,然后按名称解析它们:

var container = new UnityContainer();

// register
container.Register<IFish, OneFish>("One");
container.Register<IFish, TwoFish>("Two");

// resolve
var twoFish = container.Resolve("Two");
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个依赖于IFish并实现ITank的类:

class Tank : ITank
{
   public Tank(IFish fish) {...}
}
Run Code Online (Sandbox Code Playgroud)

我如何解决ITank并指定要获得哪些IFish实现?

这不起作用:

container.Register<ITank, Tank>();

var tank = container.Resolve<ITank>("One");
Run Code Online (Sandbox Code Playgroud)

这有效:

var fish = container.Resolve<IFish>("One");

var tank = container.Resolve<Tank>(new DependencyOverride(typeof(IFish), fish);
Run Code Online (Sandbox Code Playgroud)

但它只处理简单的情况(例如在这个例子中)而不是可能有许多名为"One"的实现的一般情况.我想要的是能够告诉Unity:

"当解析名为"One"的使用实现时,如果没有这样的实现,则寄存器将回退到未命名的实现"

是否有可以通过此行为插入Unity的自定义解析程序?

c# unity-container

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

Visual Studio 2015调试器损坏 - 这是一个错误还是仅仅是我?

我疯了吗?我一直都能相信调试器吗?

事实证明,在与VS2015的调试会话期间,当我例如在立即窗口中更改变量的值时,该分配导致分配"垃圾"值.它每次都是相同的垃圾值,但完全错误.

我把它简化为最简单的控制台应用程序repro,以防万一你可能会认为我同意我对疯狂的自我评估,我还制作了一个截然不同的截图视频剪辑.

您是否也遇到此问题或者这是本地机器问题?

以下是一个驱动器链接:

PS:我正在运行Windows 10 Enterprise x64,VS2015 Enterprise,其中包含适用于OS和VS的所有当前更新.底层硬件是现代硬件,我在VS2013下没有遇到任何问题.

internal class Program
{
    private static DateTime? _nullableDateTime;

    private static void Main( string[] args )
    {
        // Use the debugger to step through this repro. 
        // * Not sure if it matters, but I started with F11 right from the         start without any breakpoints.
        // ==============================================================================================

        // 1. Variable starts off with default of null
        //    The following statement will confirm that with an "empty" …
Run Code Online (Sandbox Code Playgroud)

corruption visual-studio-debugging visual-studio-2015

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