コード例 #1
0
ファイル: ControllerBase.cs プロジェクト: hxhlb/wwt-website
        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);
        }
コード例 #2
0
        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);
        }