我的 ASPNET 5 应用程序启动中有以下堆栈:
appBuilder.UseIdentityServerBearerTokenAuthentication();
// That calls
app.UseValidationEndpoint();
// That calls
app.UseOAuthBearerAuthentication();
// That calls
app.Use(typeof(OAuthBearerAuthenticationMiddleware), app, options);
最后的调用添加OAuthBearerAuthenticationMiddleware
到中间件管道,这个类覆盖了CreateHandler()
返回类的新实例的方法OAuthBearerAuthenticationHandler
。
OAuthBearerAuthenticationHandler
class 是处理不记名令牌的类,这就是我试图进入的地方。问题是我只能在Startup.Configure()
方法处设置断点,而且这个方法只在应用程序启动时运行一次。
即使在这种情况下,我也确实开始OAuthBearerAuthenticationHandler
使用从 CodePlex 下载的原始 Katana 源代码并加载适当的符号,但由于某种原因,这些符号不会为我提供有关OAuthBearerAuthenticationHandler
该类的信息。
我真的需要看看该类内部发生了什么,特别是该AuthenticateCoreAsync()
方法,但我不知道如何捕获请求并通过管道堆栈并到达该类,因为Startup.Configure()
它只被调用一次并且在我的情况下我只有当我提供不记名令牌时才会出现问题。我希望我足够清楚以获得答案:)