Ejemplo n.º 1
0
        private async void GetSkyDriveSessionStatus()
        {
            try
            {
                IsSkyDriveButtonEnabled = false;

                _skyDriveSessionStatus = await SkyDriveHelper.GetSessionStatusAsync();

                switch (_skyDriveSessionStatus)
                {
                case LiveConnectSessionStatus.Connected:
                    SkyDriveStatusText = AppResources.AccountConnectedStatusText;
                    break;

                case LiveConnectSessionStatus.NotConnected:
                    SkyDriveStatusText = AppResources.AccountDisconnectedStatusText;
                    break;

                case LiveConnectSessionStatus.Unknown:
                    SkyDriveStatusText = AppResources.AccountUnknownStatusText;
                    break;
                }
            }
            catch (LiveAuthException)
            {
                SkyDriveStatusText = AppResources.AccountErrorStatusText;
            }
            finally
            {
                IsSkyDriveButtonEnabled = true;
            }
        }
Ejemplo n.º 2
0
        private async void SkyDriveLogin()
        {
            try
            {
                _skyDriveSessionStatus = await SkyDriveHelper.LoginAsync();

                switch (_skyDriveSessionStatus)
                {
                case LiveConnectSessionStatus.Connected:
                    SkyDriveStatusText = AppResources.AccountConnectedStatusText;
                    break;

                case LiveConnectSessionStatus.NotConnected:
                    SkyDriveStatusText = AppResources.AccountDisconnectedStatusText;
                    break;

                case LiveConnectSessionStatus.Unknown:
                    SkyDriveStatusText = AppResources.AccountUnknownStatusText;
                    break;
                }
            }
            catch (LiveAuthException)
            {
                SkyDriveStatusText = AppResources.AccountErrorStatusText;
            }
        }
Ejemplo n.º 3
0
        public LiveConnectSessionChangedEventArgs(LiveConnectSessionStatus newStatus, LiveConnectSession newSession)
        {
            ThrowArgumentException.IfNull(newSession, "newSession");

            this.Status  = newStatus;
            this.Session = newSession;
        }
        public LiveLoginResult(LiveConnectSessionStatus status, LiveConnectSession session)
        {
            ThrowArgumentException.IfNull(session, "session");

            this.Status  = status;
            this.Session = session;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Update dependency properties that drive the UI for Auth
 /// </summary>
 private async void UpdateAuthProperties(LiveConnectSessionStatus loginStatus)
 {
     IsSignedIn = loginStatus == LiveConnectSessionStatus.Connected;
     if (IsSignedIn)
     {
         SignInName = await RetrieveName();
     }
     else
     {
         SignInName = UserNotSignedIn;
     }
 }
Ejemplo n.º 6
0
        private static string GetStatusString(LiveConnectSessionStatus status)
        {
            // We need to write cookie status values that conform to the JS library format.
            switch (status)
            {
            case LiveConnectSessionStatus.NotConnected:
                return("notConnected");

            default:
                return(status.ToString().ToLowerInvariant());
            }
        }
Ejemplo n.º 7
0
 public static ESessionState Convert(LiveConnectSessionStatus state)
 {
     switch (state)
     {
         case LiveConnectSessionStatus.Connected:
             return ESessionState.Connected;
         case LiveConnectSessionStatus.NotConnected:
             return ESessionState.NotConnected;
         case LiveConnectSessionStatus.Unknown:
         default:
             return ESessionState.Unknown;
     }
 }
Ejemplo n.º 8
0
        private static LiveLoginResult ReadResponse(HttpWebResponse response)
        {
            LiveConnectSession           newSession = null;
            LiveConnectSessionStatus     status     = LiveConnectSessionStatus.Unknown;
            IDictionary <string, object> jsonObj    = null;

            try
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    JsonReader jsReader = new JsonReader(reader.ReadToEnd());
                    jsonObj = jsReader.ReadValue() as IDictionary <string, object>;
                }
            }
            catch (FormatException fe)
            {
                return(new LiveLoginResult(
                           new LiveAuthException(AuthErrorCodes.ServerError, fe.Message)));
            }

            if (jsonObj != null)
            {
                if (jsonObj.ContainsKey(AuthConstants.Error))
                {
                    string errorCode        = jsonObj[AuthConstants.Error] as string;
                    string errorDescription = string.Empty;
                    if (jsonObj.ContainsKey(AuthConstants.ErrorDescription))
                    {
                        errorDescription = jsonObj[AuthConstants.ErrorDescription] as string;
                    }

                    return(new LiveLoginResult(new LiveAuthException(errorCode, errorDescription)));
                }
                else
                {
                    status     = LiveConnectSessionStatus.Connected;
                    newSession = CreateSession(jsonObj);
                    return(new LiveLoginResult(status, newSession));
                }
            }

            return(new LiveLoginResult(
                       new LiveAuthException(AuthErrorCodes.ServerError, ErrorText.ServerError)));
        }
        private async Task UpdateControls(LiveConnectSessionStatus sessionStatus, Boolean canLogout)
        {
            SignInButton.Visibility = sessionStatus != LiveConnectSessionStatus.Connected
                ? Visibility.Visible
                : Visibility.Collapsed;
            SignOutButton.Visibility = sessionStatus == LiveConnectSessionStatus.Connected && canLogout
                ? Visibility.Visible
                : Visibility.Collapsed;
            SignOutUnavailableText.Visibility = sessionStatus == LiveConnectSessionStatus.Connected && !canLogout
                ? Visibility.Visible
                : Visibility.Collapsed;

            if (sessionStatus == LiveConnectSessionStatus.Connected)
            {
                await UpdateUserName();
            }
            else
            {
                SignInText.Text = "Not currently signed in...";
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Reads current user session.
        /// </summary>
        public static LiveLoginResult GetUserLoginStatus(HttpContextBase webContext)
        {
            Debug.Assert(webContext != null);

            HttpCookie               cookie  = webContext.Request.Cookies[AuthCookie];
            LiveConnectSession       session = null;
            LiveConnectSessionStatus status  = LiveConnectSessionStatus.Unknown;

            if (cookie != null && cookie.Values != null)
            {
                string accessToken = cookie[AuthConstants.AccessToken];
                if (!string.IsNullOrEmpty(accessToken))
                {
                    session                     = new LiveConnectSession();
                    session.AccessToken         = UrlDataDecode(accessToken);
                    session.AuthenticationToken = UrlDataDecode(cookie[AuthConstants.AuthenticationToken]);
                    session.RefreshToken        = UrlDataDecode(cookie[AuthConstants.RefreshToken]);
                    session.Scopes              = LiveAuthUtility.ParseScopeString(UrlDataDecode(cookie[AuthConstants.Scope]));
                    session.Expires             = LiveAuthWebUtility.ParseExpiresValue(UrlDataDecode(cookie[AuthConstants.Expires]));
                    status = session.IsValid ? LiveConnectSessionStatus.Connected : LiveConnectSessionStatus.Expired;
                }
                else
                {
                    // If we previously recorded NotConnected, take that value.
                    // Ignore other values that may be set by JS library.
                    LiveConnectSessionStatus statusFromCookie;
                    if (Enum.TryParse <LiveConnectSessionStatus>(cookie[AuthConstants.Status],
                                                                 true /*ignore case*/,
                                                                 out statusFromCookie))
                    {
                        if (statusFromCookie == LiveConnectSessionStatus.NotConnected)
                        {
                            status = statusFromCookie;
                        }
                    }
                }
            }

            return(new LiveLoginResult(status, session));
        }
 private static string GetStatusString(LiveConnectSessionStatus status)
 {
     // We need to write cookie status values that conform to the JS library format.
     switch (status)
     {
         case LiveConnectSessionStatus.NotConnected:                    
             return "notConnected";
         default:
             return status.ToString().ToLowerInvariant();
     }
 }
 /// <summary>
 /// Construct a new LiveConnectSessionChangedEventArgs object.
 /// </summary>
 /// <param name="newSession">A new LiveConnectSession instance.</param>
 public LiveConnectSessionChangedEventArgs(LiveConnectSessionStatus newStatus, LiveConnectSession newSession)
 {
     this.Session = newSession;
     this.Status = newStatus;
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Creates a new LiveLoginResult object.
 /// </summary>
 /// <param name="status">Connect status.</param>
 /// <param name="session">The session object if the status is Connected.</param>
 internal LiveLoginResult(LiveConnectSessionStatus status, LiveConnectSession session)
 {
     this.Status  = status;
     this.Session = session;
 }
 /// <summary>
 /// Construct a new LiveConnectSessionChangedEventArgs object.
 /// </summary>
 /// <param name="newSession">A new LiveConnectSession instance.</param>
 public LiveConnectSessionChangedEventArgs(LiveConnectSessionStatus newStatus, LiveConnectSession newSession)
 {
     this.Session = newSession;
     this.Status  = newStatus;
 }
Ejemplo n.º 15
0
 private void SkyDriveLogout()
 {
     SkyDriveHelper.Logout();
     _skyDriveSessionStatus = LiveConnectSessionStatus.NotConnected;
     SkyDriveStatusText     = AppResources.AccountDisconnectedStatusText;
 }
 /// <summary>
 /// Creates a new LiveLoginResult object.
 /// </summary>
 /// <param name="status">Connect status.</param>
 /// <param name="session">The session object if the status is Connected.</param>
 internal LiveLoginResult(LiveConnectSessionStatus status, LiveConnectSession session)
 {
     this.Status = status;
     this.Session = session;
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Update dependency properties that drive the UI for Auth
 /// </summary>
 private async void UpdateAuthProperties(LiveConnectSessionStatus loginStatus)
 {
     IsSignedIn = loginStatus == LiveConnectSessionStatus.Connected;
     if (IsSignedIn)
     {
         SignInName = await RetrieveName();
     }
     else
     {
         SignInName = UserNotSignedIn;
     }
 }