summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--projecttemplates/WebFormsRelyingParty/LoginFrame.aspx46
-rw-r--r--projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs24
-rw-r--r--projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.designer.cs9
3 files changed, 51 insertions, 28 deletions
diff --git a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx
index f86f4eb..e649b5e 100644
--- a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx
+++ b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx
@@ -1,4 +1,4 @@
-<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginFrame.aspx.cs" Inherits="WebFormsRelyingParty.LoginFrame" %>
+<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LoginFrame.aspx.cs" Inherits="WebFormsRelyingParty.LoginFrame" EnableViewState="false" %>
<%@ Register Assembly="DotNetOpenAuth" Namespace="DotNetOpenAuth.OpenId.RelyingParty"
TagPrefix="rp" %>
@@ -17,35 +17,25 @@
<p>
Login with an account you already use!
</p>
- <ul class="OpenIdProviders">
- <li id="https://me.yahoo.com/"><a href="#">
- <div>
+ <asp:Repeater runat="server" ID="providerRepeater">
+ <HeaderTemplate>
+ <ul class="OpenIdProviders">
+ </HeaderTemplate>
+ <ItemTemplate>
+ <li id='<%# HttpUtility.HtmlAttributeEncode((string)Eval("OPIdentifier") ?? "OpenIDButton") %>'><a href="#">
<div>
- <img src="images/yahoo.gif" />
+ <div>
+ <img src='<%# HttpUtility.HtmlAttributeEncode((string)Eval("Image")) %>' />
+ </div>
+ <div class="ui-widget-overlay">
+ </div>
</div>
- <div class="ui-widget-overlay">
- </div>
- </div>
- </a></li>
- <li id="https://www.google.com/accounts/o8/id"><a href="#">
- <div>
- <div>
- <img src="images/google.gif" />
- </div>
- <div class="ui-widget-overlay">
- </div>
- </div>
- </a></li>
- <li id="OpenIDButton"><a href="#">
- <div>
- <div>
- <img src="images/openid.gif" />
- </div>
- <div class="ui-widget-overlay">
- </div>
- </div>
- </a></li>
- </ul>
+ </a></li>
+ </ItemTemplate>
+ <FooterTemplate>
+ </ul>
+ </FooterTemplate>
+ </asp:Repeater>
<form runat="server" style="display: none" id="OpenIDForm">
<asp:HiddenField ID="openidPositiveAssertion" runat="server" />
<asp:HiddenField ID="originPage" runat="server" />
diff --git a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs
index e2ecc06..a616515 100644
--- a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs
+++ b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs
@@ -13,6 +13,12 @@ namespace WebFormsRelyingParty {
public partial class LoginFrame : System.Web.UI.Page, IPostBackEventHandler {
private const string postLoginAssertionMethodName = "postLoginAssertion";
+ private static readonly ProviderInfo[] providers = new ProviderInfo[] {
+ new ProviderInfo("https://me.yahoo.com/", "images/yahoo.gif"),
+ new ProviderInfo("https://www.google.com/accounts/o8/id", "images/google.gif"),
+ new ProviderInfo(null, "images/openid.gif"),
+ };
+
protected void Page_Load(object sender, EventArgs e) {
const string positiveAssertionParameterName = "positiveAssertion";
const string originPageParameterName = "originPage";
@@ -29,6 +35,14 @@ namespace WebFormsRelyingParty {
postLoginAssertionMethodName,
originPageParameterName);
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Postback", script, true);
+
+ providerRepeater.DataSource = providers;
+ providerRepeater.DataBind();
+
+ if (!this.IsPostBack) {
+ // Perform early discovery on the OPs
+
+ }
}
#region IPostBackEventHandler Members
@@ -46,5 +60,15 @@ namespace WebFormsRelyingParty {
}
#endregion
+
+ private class ProviderInfo {
+ internal ProviderInfo(string identifier, string image) {
+ this.OPIdentifier = identifier;
+ this.Image = image;
+ }
+
+ public string OPIdentifier { get; set; }
+ public string Image { get; set; }
+ }
}
}
diff --git a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.designer.cs b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.designer.cs
index 35bc172..ae750a0 100644
--- a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.designer.cs
+++ b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.designer.cs
@@ -14,6 +14,15 @@ namespace WebFormsRelyingParty {
public partial class LoginFrame {
/// <summary>
+ /// providerRepeater control.
+ /// </summary>
+ /// <remarks>
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ /// </remarks>
+ protected global::System.Web.UI.WebControls.Repeater providerRepeater;
+
+ /// <summary>
/// OpenIDForm control.
/// </summary>
/// <remarks>