/// <summary>
		/// Adds parameters to the return_to querystring.
		/// </summary>
		/// <param name="keysValues">The keys=value pairs to add to the return_to query string.</param>
		/// <remarks>
		/// This method is useful if the Relying Party wants to recall some value
		/// when and if a positive assertion comes back from the Provider.
		/// </remarks>
		internal void AddReturnToArguments(IEnumerable<KeyValuePair<string, string>> keysValues) {
			Requires.NotNull(keysValues, "keysValues");
			ErrorUtilities.VerifyOperation(this.ReturnTo != null, OpenIdStrings.ReturnToRequiredForOperation);
			UriBuilder returnToBuilder = new UriBuilder(this.ReturnTo);
			returnToBuilder.AppendAndReplaceQueryArgs(keysValues);
			this.ReturnTo = returnToBuilder.Uri;
		}
 /// <summary>
 /// Adds parameters to the return_to querystring.
 /// </summary>
 /// <param name="keysValues">The keys=value pairs to add to the return_to query string.</param>
 /// <remarks>
 /// This method is useful if the Relying Party wants to recall some value
 /// when and if a positive assertion comes back from the Provider.
 /// </remarks>
 internal void AddReturnToArguments(IEnumerable<KeyValuePair<string, string>> keysValues)
 {
     ErrorUtilities.VerifyArgumentNotNull(keysValues, "keysValues");
     UriBuilder returnToBuilder = new UriBuilder(this.ReturnTo);
     returnToBuilder.AppendAndReplaceQueryArgs(keysValues);
     this.ReturnTo = returnToBuilder.Uri;
 }