/// <summary>
        /// Create an appropriate redirect uri for unauthenticated user email confirm request
        /// </summary>
        /// <param name="uh">Hash of unauthenticated user id</param>
        /// <param name="result">The confirm entity result</param>
        /// <returns>Redirect Uri</returns>
        private Uri HandleUnauthEmailConfirmed(string uh, ConfirmEntityResult result)
        {
            Uri redirectUri = null;

            //Mark the unauthenticated user email as confirmed
            _usersDal.UpdateUserEmail(result.UserId.Value, result.EntityId, true);
            User user = _usersDal.GetUserByUserId(result.UserId.Value);

            if (user != null)
            {
                //Check if the user's account is already linked and return the appropriate authentication provider info.
                if (!string.IsNullOrEmpty(user.MsId))
                {
                    redirectUri = user.MsId.IndexOf(FbIdPattern, StringComparison.OrdinalIgnoreCase) != -1
                                      ? new Uri(_bingOffersBaseUri, string.Format(UnauthEmailConfirmAccountLinkedPage, Facebook))
                                      : new Uri(_bingOffersBaseUri, string.Format(UnauthEmailConfirmAccountLinkedPage, Microsoft));
                }
                else
                {
                    Tuple <string, int> confirmationResponse = _usersDal.CreateConfirmationCode(user.Id.ToString(), EntityType.AccountLink, user.Id);

                    redirectUri = new Uri(_bingOffersBaseUri, string.Format(UnauthEmailConfirmAccountNotLinkedPage, uh, confirmationResponse.Item2));
                }
            }
            Log.Verbose("Email Confirmed and updated for user. User Id={0} ", result.UserId);

            return(redirectUri);
        }
示例#2
0
        /// <summary>
        /// Pings the Users database.
        /// </summary>
        /// <returns>
        /// * True if the Users database could be pinged.
        /// * Else returns false.
        /// </returns>
        private static bool PingUsers()
        {
            // Ping Users by attempting to retrieve a User known not to exist.
            IUsersDal usersDal = PartnerFactory.UsersDal(CommerceServiceConfig.Instance);

            return(usersDal.GetUserByUserId(Guid.Empty) == null);
        }