Owin
컨텍스트에서 "security.Authenticate"키의 값을 입력하는 코드를 찾고 싶습니다.Microsoft Katana에서 Owin 컨텍스트에 특정 키 값 쌍이 어디에 배치되었는지 어떻게 알 수 있습니까?
어떻게하면됩니까?
Microsoft Katana와 AspNet ID를 함께 사용하고 있습니다. 나는 OAuth는 2.0 사양을 읽었습니다하지만 내 목표는 마이크로 소프트가 자신의 코드에서 구현하는 방법을 찾는 것입니다
배경입니다.
따라서 Visual Studio 2015에서 개인 계정 개인 계정인증을 사용하여 ASP.NET MVC 프로젝트 템플릿을 열면 많은 보일러 플레이트 코드가 생깁니다.
지난 몇 년 동안, 나는 그 대부분을 이해하는 법을 배웠습니다. 그러나 때때로, Reflector와 IL Spy를 사용하여 잊어 버리고 물건을 쫓아 낼 것입니다.
지금 보일러 플레이트와 함께 제공되는 ChallengeResult
클래스가 OAuth 공급자로 리디렉션되는 방식을 전혀 이해하지 못했을 때 이해하고 싶습니다. ExecuteResult
메서드가있는 것 같습니다.
내 연구에 따르면 OwinContext
에서 func
을 가져 와서 실행합니다. OwinContext
에 func
과 함께 저장된 키는 "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");
}
}
좋은 질문과 나는 그것을 빨리 발견하지 못했습니다. 이 특정 항목을 조사하기 위해 어떤 방향으로 이끌어 낼 수 있는지 물어볼 수 있습니까? – trailmax
@trailmax 그냥 호기심. 나는 추상화를 찢어 내고 안으로 들여다보고 싶어한다. 나는 대개 내 자신의 OAuth 코드를 작성하기 때문에 대개 간단합니다. 그러나 과거의 프로젝트에서 필자는 Microsoft의 코드를 사용했으며 매번 어떤 일이 일어나고 있는지를 알기까지 추적 할 것입니다. 것은 다음 번에, 나는 대부분의 비트를 잊어 버릴 것이다. Facebook과 통합하기 때문에 다시하고 있습니다. 통합은 도전이 아닙니다. 사실, 그것은 한 조각의 케이크입니다. 내가 무슨 일이 일어나고 있는지 알지 못한다면 나는 블랙 박스가 싫다. –
그것은 큰 열망입니다! 내가 그것을 찾을 수 있는지 보자. – trailmax