summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-12-15 06:22:29 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2009-12-15 06:24:21 -0800
commit66c3d225ef29ae4128d62207f0e2df35d1eefe03 (patch)
treee12d768650da41b325c6400bd05016073b6949ca /src
parentbabcb4cedce9520e2b339409b8d037de24de85b7 (diff)
downloadDotNetOpenAuth-66c3d225ef29ae4128d62207f0e2df35d1eefe03.zip
DotNetOpenAuth-66c3d225ef29ae4128d62207f0e2df35d1eefe03.tar.gz
DotNetOpenAuth-66c3d225ef29ae4128d62207f0e2df35d1eefe03.tar.bz2
Fixed bug where OpenIdSelector would fail if it didn't have an explicit ID attribute, but it did have its DownloadYahooUILibrary property set.
Diffstat (limited to 'src')
-rw-r--r--src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdSelector.cs21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdSelector.cs b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdSelector.cs
index ed83412..9980ea2 100644
--- a/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdSelector.cs
+++ b/src/DotNetOpenAuth/OpenId/RelyingParty/OpenIdSelector.cs
@@ -81,6 +81,11 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
private HiddenField positiveAssertionField;
/// <summary>
+ /// A field to store the value to set on the <see cref="textBox"/> control after it's created.
+ /// </summary>
+ private bool downloadYuiLibrary = OpenIdAjaxTextBox.DownloadYahooUILibraryDefault;
+
+ /// <summary>
/// Initializes a new instance of the <see cref="OpenIdSelector"/> class.
/// </summary>
public OpenIdSelector() {
@@ -121,13 +126,19 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
[Description("Whether a split button will be used for the \"log in\" when the user provides an identifier that delegates to more than one Provider.")]
public bool DownloadYahooUILibrary {
get {
- this.EnsureChildControls();
- return this.textBox.DownloadYahooUILibrary;
+ return this.textBox != null ? this.textBox.DownloadYahooUILibrary : this.downloadYuiLibrary;
}
set {
- this.EnsureChildControls();
- this.textBox.DownloadYahooUILibrary = value;
+ // We don't just call EnsureChildControls() and then set the property on
+ // this.textBox itself because (apparently) setting this property in the ASPX
+ // page and thus calling this EnsureID() via EnsureChildControls() this early
+ // results in no ID.
+ if (this.textBox != null) {
+ this.textBox.DownloadYahooUILibrary = value;
+ } else {
+ this.downloadYuiLibrary = value;
+ }
}
}
@@ -190,6 +201,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
protected override void CreateChildControls() {
base.CreateChildControls();
this.EnsureID();
+ ErrorUtilities.VerifyInternal(!string.IsNullOrEmpty(this.UniqueID), "Control.EnsureID() failed to give us a unique ID. Try setting an ID on the OpenIdSelector control. But please also file this bug with the project owners.");
var selectorButton = this.Buttons.OfType<SelectorInfoCardButton>().FirstOrDefault();
if (selectorButton != null) {
@@ -205,6 +217,7 @@ namespace DotNetOpenAuth.OpenId.RelyingParty {
this.textBox.ID = "openid_identifier";
this.textBox.HookFormSubmit = false;
this.textBox.ShowLogOnPostBackButton = true;
+ this.textBox.DownloadYahooUILibrary = this.downloadYuiLibrary;
this.Controls.Add(this.textBox);
this.positiveAssertionField = new HiddenField();