summaryrefslogtreecommitdiffstats
path: root/samples/OpenIdProviderWebForms/Default.aspx.cs
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2009-04-03 16:56:18 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2009-04-03 16:56:18 -0700
commit22873cc61615aaa01734857b0567e4878b2e325c (patch)
tree17a0caa0a87914bc5d53493071966dba54c608e3 /samples/OpenIdProviderWebForms/Default.aspx.cs
parent10a0eaf4306e74974d360b59595656ee63ba1598 (diff)
downloadDotNetOpenAuth-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.cs48
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