┌─┐ ║"│ └┬┘ ┌┼┐ │ ┌──────┐ ┌─────────────────────────────┐ ┌──────────────────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌┴┐ │Google│ │Application Cookie Middleware│ │External Cookie Middleware│ │Google Middleware│ │AuthController│ │Goggle Middleware│ User Agent └──┬───┘ └──────────────┬──────────────┘ └────────────┬─────────────┘ └────────┬────────┘ └──────┬───────┘ └────────┬────────┘ │ │ ChallengeResult │ │ │ │ │ │ ExternalLogin("Google", ["/Account/ExternalLoginCallback"]) │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─> │ │ │ │ │ │ │ │ │ │ │ │ │ │─ ─ ┐ │ │ │ │ │ │ | ChallengeResult.Execute() │ │ │ │ │ │< ─ ┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════════════════════════════════════════════════════╗ │ │ │ │ │ │ │ ║ChallengeResult.Execute ░║ │ │ │ │ │ │ │ ║ invokes ║ │ │ │ │ │ │─ ─ ┐ ║ context ║ │ │ │ │ │ │ | ChallengeResult.Execute() ║ .HttpContext ║ │ │ │ │ │ │< ─ ┘ ║ .GetOwinContext() ║ │ │ │ │ │ │ │ ║ .Authentication ║ │ │ │ │ │ │ │ ║ .Challenge(properties, LoginProvider) ║ │ │ │ │ │ │ │ ║ which creates AuthenticationResponseChallenge ║ │ │ │ │ │ │ │ ║ within the Owin environment. ║ │ │ │ │ │ │ │ ╚══════════════════════════════════════════════════════╝ │ │ ─ ─ ┐ │ │ │ │ │ │ | Check for Session Cookie │ │ │ │ │ │ < ─ ┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╔══════╤═════════════════╪═══════════════════════════════╗ │ │ │ │ │ │ ║ OPT │ Found Cookie │ ║ │ │ │ │ │ │ ╟──────┘ │ ║ │ │ │ │ │ │ ║ ─ ─ ┐ ║ │ │ │ │ │ │ ║ | Create Claims Identity ║ │ │ │ │ │ │ ║ < ─ ┘ ║ │ │ │ │ │ │ ╚════════════════════════╪═══════════════════════════════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ >│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─> │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ > │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ <─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │<─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ │ │ │ User Agent ┌──┴───┐ ┌──────────────┴──────────────┐ ┌────────────┴─────────────┐ ┌────────┴────────┐ ┌──────┴───────┐ ┌────────┴────────┐ ┌─┐ │Google│ │Application Cookie Middleware│ │External Cookie Middleware│ │Google Middleware│ │AuthController│ │Goggle Middleware│ ║"│ └──────┘ └─────────────────────────────┘ └──────────────────────────┘ └─────────────────┘ └──────────────┘ └─────────────────┘ └┬┘ ┌┼┐ │ ┌┴┐