diff options
Diffstat (limited to 'src')
4 files changed, 104 insertions, 104 deletions
diff --git a/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs b/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs index 0205759..9159639 100644 --- a/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs +++ b/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs @@ -629,9 +629,8 @@ namespace DotNetOpenAuth.InfoCard { } /// <summary> - /// Creates the info card selector <object> HTML tag. + /// Adds the javascript that adds the info card selector <object> HTML tag to the page. /// </summary> - /// <returns>A control that renders to the <object> tag.</returns> [Pure] private void RegisterInfoCardSelectorObjectScript() { string scriptFormat = @"{{ diff --git a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdButtonPanel.cs b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdButtonPanel.cs index 1e72dd6..cb2c9ea 100644 --- a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdButtonPanel.cs +++ b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdButtonPanel.cs @@ -166,10 +166,10 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { base.CreateChildControls(); this.infoCardSelector = new InfoCardSelector(); - infoCardSelector.ClaimsRequested.Add(new ClaimType { Name = ClaimTypes.PPID }); - infoCardSelector.ImageSize = InfoCardImageSize.Size60x42; - infoCardSelector.ReceivedToken += infoCardSelector_ReceivedToken; - infoCardSelector.TokenProcessingError += infoCardSelector_TokenProcessingError; + this.infoCardSelector.ClaimsRequested.Add(new ClaimType { Name = ClaimTypes.PPID }); + this.infoCardSelector.ImageSize = InfoCardImageSize.Size60x42; + this.infoCardSelector.ReceivedToken += this.InfoCardSelector_ReceivedToken; + this.infoCardSelector.TokenProcessingError += this.InfoCardSelector_TokenProcessingError; this.Controls.Add(this.infoCardSelector); this.textBox = new OpenIdAjaxTextBox(); @@ -211,17 +211,18 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { this.Page.ClientScript.RegisterClientScriptResource(typeof(OpenIdButtonPanel), EmbeddedScriptResourceName); // Provide javascript with a way to post the login assertion. - const string postLoginAssertionMethodName = "postLoginAssertion"; - const string positiveAssertionParameterName = "positiveAssertion"; - string script = string.Format( - CultureInfo.InvariantCulture, -@"window.{2} = function({0}) {{ + const string PostLoginAssertionMethodName = "postLoginAssertion"; + const string PositiveAssertionParameterName = "positiveAssertion"; + const string ScriptFormat = @"window.{2} = function({0}) {{ $('#{3}')[0].setAttribute('value', {0}); {1}; -}};", - positiveAssertionParameterName, +}};"; + string script = string.Format( + CultureInfo.InvariantCulture, + ScriptFormat, + PositiveAssertionParameterName, this.Page.ClientScript.GetPostBackEventReference(this, null, false), - postLoginAssertionMethodName, + PostLoginAssertionMethodName, this.positiveAssertionField.ClientID); this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Postback", script, true); @@ -275,7 +276,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { writer.RenderBeginTag(HtmlTextWriterTag.Div); writer.RenderBeginTag(HtmlTextWriterTag.Div); - infoCardSelector.RenderControl(writer); + this.infoCardSelector.RenderControl(writer); writer.RenderEndTag(); // </div> @@ -334,7 +335,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="DotNetOpenAuth.InfoCard.ReceivedTokenEventArgs"/> instance containing the event data.</param> - private void infoCardSelector_ReceivedToken(object sender, ReceivedTokenEventArgs e) { + private void InfoCardSelector_ReceivedToken(object sender, ReceivedTokenEventArgs e) { this.Page.Response.SetCookie(new HttpCookie("openid_identifier", "infocard") { Path = this.Page.Request.ApplicationPath, }); @@ -346,7 +347,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="DotNetOpenAuth.InfoCard.TokenProcessingErrorEventArgs"/> instance containing the event data.</param> - private void infoCardSelector_TokenProcessingError(object sender, TokenProcessingErrorEventArgs e) { + private void InfoCardSelector_TokenProcessingError(object sender, TokenProcessingErrorEventArgs e) { this.OnTokenProcessingError(e); } } @@ -357,7 +358,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { [TypeConverter(typeof(IdentifierConverter))] public Identifier OPIdentifier { get; set; } - + public string Image { get; set; } } } diff --git a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdRelyingPartyAjaxControlBase.cs b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdRelyingPartyAjaxControlBase.cs index b7b6d85..c546901 100644 --- a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdRelyingPartyAjaxControlBase.cs +++ b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdRelyingPartyAjaxControlBase.cs @@ -260,7 +260,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { Logger.OpenId.InfoFormat("AJAX discovery on {0} requested.", userSuppliedIdentifier); this.Identifier = userSuppliedIdentifier; - this.discoveryResult = SerializeDiscoveryAsJson(this.Identifier); + this.discoveryResult = this.SerializeDiscoveryAsJson(this.Identifier); } /// <summary> @@ -278,96 +278,12 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// </summary> /// <param name="identifiers">The identifiers to perform discovery on.</param> protected void PreloadDiscovery(IEnumerable<Identifier> identifiers) { - string discoveryResults = SerializeDiscoveryAsJson(identifiers); + string discoveryResults = this.SerializeDiscoveryAsJson(identifiers); string script = "window.dnoa_internal.loadPreloadedDiscoveryResults(" + discoveryResults + ");"; this.Page.ClientScript.RegisterClientScriptBlock(typeof(OpenIdRelyingPartyAjaxControlBase), this.ClientID, script, true); } /// <summary> - /// Serializes the discovery of multiple identifiers as a JSON object. - /// </summary> - /// <param name="identifiers">The identifiers to perform discovery on and create requests for.</param> - /// <returns>The serialized JSON object.</returns> - private string SerializeDiscoveryAsJson(IEnumerable<Identifier> identifiers) { - ErrorUtilities.VerifyArgumentNotNull(identifiers, "identifiers"); - - // We prepare a JSON object with this interface: - // Array discoveryWrappers; - // Where each element in the above array has this interface: - // class discoveryWrapper { - // string userSuppliedIdentifier; - // jsonResponse discoveryResult; // contains result of call to SerializeDiscoveryAsJson(Identifier) - // } - - StringBuilder discoveryResultBuilder = new StringBuilder(); - discoveryResultBuilder.Append("["); - foreach(var identifier in identifiers) { // TODO: parallelize discovery on these identifiers - discoveryResultBuilder.Append("{"); - discoveryResultBuilder.AppendFormat("userSuppliedIdentifier: {0},", MessagingUtilities.GetSafeJavascriptValue(identifier)); - discoveryResultBuilder.AppendFormat("discoveryResult: {0}", SerializeDiscoveryAsJson(identifier)); - discoveryResultBuilder.Append("},"); - } - - discoveryResultBuilder.Length -= 1; // trim last comma - discoveryResultBuilder.Append("]"); - return discoveryResultBuilder.ToString(); - } - - /// <summary> - /// Serializes the results of discovery and the created auth requests as a JSON object - /// for the user agent to initiate. - /// </summary> - /// <param name="identifier">The identifier to perform discovery on.</param> - /// <returns>The JSON string.</returns> - private string SerializeDiscoveryAsJson(Identifier identifier) { - ErrorUtilities.VerifyArgumentNotNull(identifier, "identifier"); - - // We prepare a JSON object with this interface: - // class jsonResponse { - // string claimedIdentifier; - // Array requests; // never null - // string error; // null if no error - // } - // Each element in the requests array looks like this: - // class jsonAuthRequest { - // string endpoint; // URL to the OP endpoint - // string immediate; // URL to initiate an immediate request - // string setup; // URL to initiate a setup request. - // } - StringBuilder discoveryResultBuilder = new StringBuilder(); - discoveryResultBuilder.Append("{"); - try { - IEnumerable<IAuthenticationRequest> requests = this.CreateRequests(identifier).CacheGeneratedResults(); - if (requests.Any()) { - discoveryResultBuilder.AppendFormat("claimedIdentifier: {0},", MessagingUtilities.GetSafeJavascriptValue(requests.First().ClaimedIdentifier)); - discoveryResultBuilder.Append("requests: ["); - foreach (IAuthenticationRequest request in requests) { - discoveryResultBuilder.Append("{"); - discoveryResultBuilder.AppendFormat("endpoint: {0},", MessagingUtilities.GetSafeJavascriptValue(request.Provider.Uri.AbsoluteUri)); - request.Mode = AuthenticationRequestMode.Immediate; - OutgoingWebResponse response = request.RedirectingResponse; - discoveryResultBuilder.AppendFormat("immediate: {0},", MessagingUtilities.GetSafeJavascriptValue(response.GetDirectUriRequest(this.RelyingParty.Channel).AbsoluteUri)); - request.Mode = AuthenticationRequestMode.Setup; - response = request.RedirectingResponse; - discoveryResultBuilder.AppendFormat("setup: {0}", MessagingUtilities.GetSafeJavascriptValue(response.GetDirectUriRequest(this.RelyingParty.Channel).AbsoluteUri)); - discoveryResultBuilder.Append("},"); - } - discoveryResultBuilder.Length -= 1; // trim off last comma - discoveryResultBuilder.Append("]"); - } else { - discoveryResultBuilder.Append("requests: [],"); - discoveryResultBuilder.AppendFormat("error: {0}", MessagingUtilities.GetSafeJavascriptValue(OpenIdStrings.OpenIdEndpointNotFound)); - } - } catch (ProtocolException ex) { - discoveryResultBuilder.Append("requests: [],"); - discoveryResultBuilder.AppendFormat("error: {0}", MessagingUtilities.GetSafeJavascriptValue(ex.Message)); - } - - discoveryResultBuilder.Append("}"); - return discoveryResultBuilder.ToString(); - } - - /// <summary> /// Fires the <see cref="UnconfirmedPositiveAssertion"/> event. /// </summary> protected virtual void OnUnconfirmedPositiveAssertion() { @@ -514,6 +430,89 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { } /// <summary> + /// Serializes the discovery of multiple identifiers as a JSON object. + /// </summary> + /// <param name="identifiers">The identifiers to perform discovery on and create requests for.</param> + /// <returns>The serialized JSON object.</returns> + private string SerializeDiscoveryAsJson(IEnumerable<Identifier> identifiers) { + ErrorUtilities.VerifyArgumentNotNull(identifiers, "identifiers"); + + // We prepare a JSON object with this interface: + // Array discoveryWrappers; + // Where each element in the above array has this interface: + // class discoveryWrapper { + // string userSuppliedIdentifier; + // jsonResponse discoveryResult; // contains result of call to SerializeDiscoveryAsJson(Identifier) + // } + StringBuilder discoveryResultBuilder = new StringBuilder(); + discoveryResultBuilder.Append("["); + foreach (var identifier in identifiers) { // TODO: parallelize discovery on these identifiers + discoveryResultBuilder.Append("{"); + discoveryResultBuilder.AppendFormat("userSuppliedIdentifier: {0},", MessagingUtilities.GetSafeJavascriptValue(identifier)); + discoveryResultBuilder.AppendFormat("discoveryResult: {0}", this.SerializeDiscoveryAsJson(identifier)); + discoveryResultBuilder.Append("},"); + } + + discoveryResultBuilder.Length -= 1; // trim last comma + discoveryResultBuilder.Append("]"); + return discoveryResultBuilder.ToString(); + } + + /// <summary> + /// Serializes the results of discovery and the created auth requests as a JSON object + /// for the user agent to initiate. + /// </summary> + /// <param name="identifier">The identifier to perform discovery on.</param> + /// <returns>The JSON string.</returns> + private string SerializeDiscoveryAsJson(Identifier identifier) { + ErrorUtilities.VerifyArgumentNotNull(identifier, "identifier"); + + // We prepare a JSON object with this interface: + // class jsonResponse { + // string claimedIdentifier; + // Array requests; // never null + // string error; // null if no error + // } + // Each element in the requests array looks like this: + // class jsonAuthRequest { + // string endpoint; // URL to the OP endpoint + // string immediate; // URL to initiate an immediate request + // string setup; // URL to initiate a setup request. + // } + StringBuilder discoveryResultBuilder = new StringBuilder(); + discoveryResultBuilder.Append("{"); + try { + IEnumerable<IAuthenticationRequest> requests = this.CreateRequests(identifier).CacheGeneratedResults(); + if (requests.Any()) { + discoveryResultBuilder.AppendFormat("claimedIdentifier: {0},", MessagingUtilities.GetSafeJavascriptValue(requests.First().ClaimedIdentifier)); + discoveryResultBuilder.Append("requests: ["); + foreach (IAuthenticationRequest request in requests) { + discoveryResultBuilder.Append("{"); + discoveryResultBuilder.AppendFormat("endpoint: {0},", MessagingUtilities.GetSafeJavascriptValue(request.Provider.Uri.AbsoluteUri)); + request.Mode = AuthenticationRequestMode.Immediate; + OutgoingWebResponse response = request.RedirectingResponse; + discoveryResultBuilder.AppendFormat("immediate: {0},", MessagingUtilities.GetSafeJavascriptValue(response.GetDirectUriRequest(this.RelyingParty.Channel).AbsoluteUri)); + request.Mode = AuthenticationRequestMode.Setup; + response = request.RedirectingResponse; + discoveryResultBuilder.AppendFormat("setup: {0}", MessagingUtilities.GetSafeJavascriptValue(response.GetDirectUriRequest(this.RelyingParty.Channel).AbsoluteUri)); + discoveryResultBuilder.Append("},"); + } + discoveryResultBuilder.Length -= 1; // trim off last comma + discoveryResultBuilder.Append("]"); + } else { + discoveryResultBuilder.Append("requests: [],"); + discoveryResultBuilder.AppendFormat("error: {0}", MessagingUtilities.GetSafeJavascriptValue(OpenIdStrings.OpenIdEndpointNotFound)); + } + } catch (ProtocolException ex) { + discoveryResultBuilder.Append("requests: [],"); + discoveryResultBuilder.AppendFormat("error: {0}", MessagingUtilities.GetSafeJavascriptValue(ex.Message)); + } + + discoveryResultBuilder.Append("}"); + return discoveryResultBuilder.ToString(); + } + + /// <summary> /// Creates the authentication requests for a given user-supplied Identifier. /// </summary> /// <param name="requests">The authentication requests to prepare.</param> diff --git a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdTextBox.cs b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdTextBox.cs index 96e4186..8337823 100644 --- a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdTextBox.cs +++ b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdTextBox.cs @@ -545,6 +545,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty { /// <summary> /// Creates the authentication requests for a given user-supplied Identifier. /// </summary> + /// <param name="identifier">The identifier to create a request for.</param> /// <returns> /// A sequence of authentication requests, any one of which may be /// used to determine the user's control of the <see cref="IAuthenticationRequest.ClaimedIdentifier"/>. |