我想找出哪段代码在Owin
上下文中为键“ security.Authenticate”赋予了什么值。
我怎么做?
我正在使用带有AspNet Identity的Microsoft Katana。
背景
我已经阅读了OAuth 2.0规范,但我的目标是了解Microsoft如何在其代码中实现它。
因此,当您在Visual Studio 2015中使用“个人帐户”身份验证打开ASP.NET MVC项目模板时,会得到很多样板代码。
多年以来,我已经学会了理解其中的大部分内容,但是我时不时地会忘记并开始使用Reflector和IL Spy来追踪事物。
现在,我试图了解ChallengeResult
样板附带的类如何在看起来完全看不到它的ExecuteResult
方法的情况下如何重定向到OAuth提供程序。
我的研究使我找到了func
从那里获取OwinContext
并执行它的代码行。func
存储在中的密钥OwinContext
是“ security.Authenticate”。
// Microsoft.Owin.Security.AuthenticationManager
internal Func<string[],
Action<IIdentity,
IDictionary<string, string>,
IDictionary<string, object>, object>,
object,
Task> AuthenticateDelegate
{
get
{
return this._context
.Get<Func<string[],
Action<IIdentity, IDictionary<string, string>, IDictionary<string, object>, object>,
object, Task>>("security.Authenticate");
}
}
该值在AuthenticationHandler中使用的OwinRequestExtensions中设置。经过一长串的调用之后,它最终出现在CookieAuthenticationMiddleware和其他身份验证中间件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句