protected static async Task <ProfileDetails> ValidateAuthentication() { var svc = new LiveIdAuth(); var token = System.Web.HttpContext.Current.Request.Headers["LiveUserToken"]; if (token == null) { token = System.Web.HttpContext.Current.Request.QueryString["LiveUserToken"]; } var cachedProfile = ProfileCacheManager.GetProfileDetails(token); if (cachedProfile != null) { return(cachedProfile); } var userId = await svc.GetUserId(token); if (userId != null && userId.Length > 3) { var profileService = DependencyResolver.Current.GetService(typeof(IProfileService)) as IProfileService; var profileDetails = profileService.GetProfile(userId); if (profileDetails != null) { ProfileCacheManager.CacheProfile(token, profileDetails); } return(profileDetails); } return(null); }
protected static async Task <ProfileDetails> ValidateAuthentication() { var svc = new LiveIdAuth(); var token = System.Web.HttpContext.Current.Request.Headers["LiveUserToken"]; if (token == null) { var authCookie = System.Web.HttpContext.Current.Request.Cookies["access_token"]; if (authCookie != null) { token = authCookie.Value; } } var cachedProfile = ProfileCacheManager.GetProfileDetails(token); if (cachedProfile != null) { return(cachedProfile); } string userId = null; userId = await svc.GetUserId(token); if (userId == null) { var result = await svc.RefreshTokens(); var tokens = new { access_token = "", refresh_token = "" }; var json = JsonConvert.DeserializeAnonymousType(result, tokens); userId = await svc.GetUserId(json.access_token); } if (userId == null || userId.Length <= 3) { return(null); } var profileService = DependencyResolver.Current.GetService(typeof(IProfileService)) as IProfileService; var profileDetails = profileService.GetProfile(userId); if (profileDetails != null && token != null) { ProfileCacheManager.CacheProfile(token, profileDetails); } return(profileDetails); }