diff options
Diffstat (limited to 'samples/OpenIdProviderWebForms')
4 files changed, 88 insertions, 44 deletions
diff --git a/samples/OpenIdProviderWebForms/Default.aspx b/samples/OpenIdProviderWebForms/Default.aspx index 36272c4..ef090e1 100644 --- a/samples/OpenIdProviderWebForms/Default.aspx +++ b/samples/OpenIdProviderWebForms/Default.aspx @@ -1,47 +1,9 @@ -<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" %> +<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeBehind="Default.aspx.cs" + Inherits="OpenIdProviderWebForms._default" %> <%@ Import Namespace="OpenIdProviderWebForms.Code" %> -<%@ Import Namespace="DotNetOpenAuth.OpenId.Provider" %> -<%@ Import Namespace="DotNetOpenAuth.Messaging" %> <%@ Register Assembly="DotNetOpenAuth" Namespace="DotNetOpenAuth.OpenId" TagPrefix="openid" %> <%@ Register Assembly="DotNetOpenAuth" Namespace="DotNetOpenAuth" TagPrefix="openauth" %> - -<script runat="server"> - protected void Page_Load(object sender, EventArgs e) { - if (Request.QueryString["rp"] != null) { - if (Page.User.Identity.IsAuthenticated) { - SendAssertion(Request.QueryString["rp"]); - } else { - FormsAuthentication.RedirectToLoginPage(); - } - } else { - TextBox relyingPartySite = (TextBox)loginView.FindControl("relyingPartySite"); - if (relyingPartySite != null) { - relyingPartySite.Focus(); - } - } - } - - protected void sendAssertionButton_Click(object sender, EventArgs e) { - TextBox relyingPartySite = (TextBox)loginView.FindControl("relyingPartySite"); - SendAssertion(relyingPartySite.Text); - } - - private void SendAssertion(string relyingPartyRealm) { - Uri providerEndpoint = new Uri(Request.Url, Page.ResolveUrl("~/server.aspx")); - OpenIdProvider op = new OpenIdProvider(); - try { - // Send user input through identifier parser so we accept more free-form input. - string rpSite = Identifier.Parse(relyingPartyRealm); - op.PrepareUnsolicitedAssertion(providerEndpoint, rpSite, Util.BuildIdentityUrl(), Util.BuildIdentityUrl()).Send(); - } catch (ProtocolException ex) { - Label errorLabel = (Label)loginView.FindControl("errorLabel"); - errorLabel.Visible = true; - errorLabel.Text = ex.Message; - } - } -</script> - <asp:Content runat="server" ContentPlaceHolderID="head"> <openauth:XrdsPublisher runat="server" XrdsUrl="~/op_xrds.aspx" /> @@ -52,12 +14,12 @@ } return this.substring(0, substring.length) == substring; }; - + function updateBookmark(rpRealm) { if (!(rpRealm.startsWith("http://") || rpRealm.startsWith("https://"))) { rpRealm = "http://" + rpRealm; } - + var bookmarkUrl = document.location + "?rp=" + encodeURIComponent(rpRealm); bookmarkParagraph.style.display = ''; bookmark.href = bookmarkUrl; @@ -82,11 +44,13 @@ party site. Just type in the URL to the site's home page. This could be the sample relying party web site. </p> <div> - <asp:TextBox runat="server" ID="relyingPartySite" Columns="40" onchange="updateBookmark(this.value)" onkeyup="updateBookmark(this.value)" /> + <asp:TextBox runat="server" ID="relyingPartySite" Columns="40" onchange="updateBookmark(this.value)" + onkeyup="updateBookmark(this.value)" /> <asp:Button runat="server" ID="sendAssertionButton" Text="Login" OnClick="sendAssertionButton_Click" /> <asp:RequiredFieldValidator runat="server" ControlToValidate="relyingPartySite" Text="Specify relying party site first" /> </div> - <p id="bookmarkParagraph" style="display:none">Bookmark <a id="bookmark"></a> so you can log into the RP automatically in the future.</p> + <p id="bookmarkParagraph" style="display: none">Bookmark <a id="bookmark"></a>so you + can log into the RP automatically in the future.</p> <p>An unsolicited assertion is a way to log in to a relying party site directly from your OpenID Provider. </p> <p><asp:Label runat="server" EnableViewState="false" Visible="false" ID="errorLabel" diff --git a/samples/OpenIdProviderWebForms/Default.aspx.cs b/samples/OpenIdProviderWebForms/Default.aspx.cs new file mode 100644 index 0000000..808dbb1 --- /dev/null +++ b/samples/OpenIdProviderWebForms/Default.aspx.cs @@ -0,0 +1,48 @@ +namespace OpenIdProviderWebForms { + using System; + using System.Web.Security; + using System.Web.UI.WebControls; + using DotNetOpenAuth.Messaging; + using DotNetOpenAuth.OpenId; + using DotNetOpenAuth.OpenId.Provider; + using OpenIdProviderWebForms.Code; + + /// <summary> + /// Page for handling logins to this server. + /// </summary> + public partial class _default : System.Web.UI.Page { + protected void Page_Load(object sender, EventArgs e) { + if (Request.QueryString["rp"] != null) { + if (Page.User.Identity.IsAuthenticated) { + SendAssertion(Request.QueryString["rp"]); + } else { + FormsAuthentication.RedirectToLoginPage(); + } + } else { + TextBox relyingPartySite = (TextBox)loginView.FindControl("relyingPartySite"); + if (relyingPartySite != null) { + relyingPartySite.Focus(); + } + } + } + + protected void sendAssertionButton_Click(object sender, EventArgs e) { + TextBox relyingPartySite = (TextBox)loginView.FindControl("relyingPartySite"); + SendAssertion(relyingPartySite.Text); + } + + private void SendAssertion(string relyingPartyRealm) { + Uri providerEndpoint = new Uri(Request.Url, Page.ResolveUrl("~/server.aspx")); + OpenIdProvider op = new OpenIdProvider(); + try { + // Send user input through identifier parser so we accept more free-form input. + string rpSite = Identifier.Parse(relyingPartyRealm); + op.PrepareUnsolicitedAssertion(providerEndpoint, rpSite, Util.BuildIdentityUrl(), Util.BuildIdentityUrl()).Send(); + } catch (ProtocolException ex) { + Label errorLabel = (Label)loginView.FindControl("errorLabel"); + errorLabel.Visible = true; + errorLabel.Text = ex.Message; + } + } + } +}
\ No newline at end of file diff --git a/samples/OpenIdProviderWebForms/Default.aspx.designer.cs b/samples/OpenIdProviderWebForms/Default.aspx.designer.cs new file mode 100644 index 0000000..74f2647 --- /dev/null +++ b/samples/OpenIdProviderWebForms/Default.aspx.designer.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.4912 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace OpenIdProviderWebForms { + + + public partial class _default { + + /// <summary> + /// loginView 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.LoginView loginView; + } +} diff --git a/samples/OpenIdProviderWebForms/OpenIdProviderWebForms.csproj b/samples/OpenIdProviderWebForms/OpenIdProviderWebForms.csproj index c45b0f5..ceea842 100644 --- a/samples/OpenIdProviderWebForms/OpenIdProviderWebForms.csproj +++ b/samples/OpenIdProviderWebForms/OpenIdProviderWebForms.csproj @@ -99,6 +99,13 @@ <Compile Include="decide.aspx.designer.cs"> <DependentUpon>decide.aspx</DependentUpon> </Compile> + <Compile Include="Default.aspx.cs"> + <DependentUpon>Default.aspx</DependentUpon> + <SubType>ASPXCodeBehind</SubType> + </Compile> + <Compile Include="Default.aspx.designer.cs"> + <DependentUpon>Default.aspx</DependentUpon> + </Compile> <Compile Include="Global.asax.cs"> <DependentUpon>Global.asax</DependentUpon> </Compile> |