diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-04-03 16:56:18 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-04-03 16:56:18 -0700 |
commit | 22873cc61615aaa01734857b0567e4878b2e325c (patch) | |
tree | 17a0caa0a87914bc5d53493071966dba54c608e3 /samples/OpenIdProviderWebForms/Default.aspx.cs | |
parent | 10a0eaf4306e74974d360b59595656ee63ba1598 (diff) | |
download | DotNetOpenAuth-22873cc61615aaa01734857b0567e4878b2e325c.zip DotNetOpenAuth-22873cc61615aaa01734857b0567e4878b2e325c.tar.gz DotNetOpenAuth-22873cc61615aaa01734857b0567e4878b2e325c.tar.bz2 |
Moved the server code to a code-behind page.
Diffstat (limited to 'samples/OpenIdProviderWebForms/Default.aspx.cs')
-rw-r--r-- | samples/OpenIdProviderWebForms/Default.aspx.cs | 48 |
1 files changed, 48 insertions, 0 deletions
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 |