diff options
author | David Christiansen <coding@davedoes.net> | 2012-03-15 22:10:55 +0000 |
---|---|---|
committer | David Christiansen <coding@davedoes.net> | 2012-03-15 22:10:55 +0000 |
commit | a5bfa2bb8a614b1932ec8b7bbc6a0cc6bca3051f (patch) | |
tree | a3057157fa3287e0c0c4cc49be1854f9aa63d321 /src/OpenID/OpenIdProviderWebForms/Default.aspx.cs | |
parent | 02ce959db12fec57e846e5ebfa662cd0327ce69c (diff) | |
download | DotNetOpenAuth.Samples-a5bfa2bb8a614b1932ec8b7bbc6a0cc6bca3051f.zip DotNetOpenAuth.Samples-a5bfa2bb8a614b1932ec8b7bbc6a0cc6bca3051f.tar.gz DotNetOpenAuth.Samples-a5bfa2bb8a614b1932ec8b7bbc6a0cc6bca3051f.tar.bz2 |
W.I.P.
* Initial migration and reference to DNOA Nuget packages (From teamcity.dotnetopenauth.net)
* Awaiting fix to DotNetOpenAuth.OpenIdOAuth.nuspec in order to complete migration.
Diffstat (limited to 'src/OpenID/OpenIdProviderWebForms/Default.aspx.cs')
-rw-r--r-- | src/OpenID/OpenIdProviderWebForms/Default.aspx.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/OpenID/OpenIdProviderWebForms/Default.aspx.cs b/src/OpenID/OpenIdProviderWebForms/Default.aspx.cs new file mode 100644 index 0000000..4843639 --- /dev/null +++ b/src/OpenID/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) { + this.SendAssertion(Request.QueryString["rp"]); + } else { + FormsAuthentication.RedirectToLoginPage(); + } + } else { + TextBox relyingPartySite = (TextBox)this.loginView.FindControl("relyingPartySite"); + if (relyingPartySite != null) { + relyingPartySite.Focus(); + } + } + } + + protected void sendAssertionButton_Click(object sender, EventArgs e) { + TextBox relyingPartySite = (TextBox)this.loginView.FindControl("relyingPartySite"); + this.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)this.loginView.FindControl("errorLabel"); + errorLabel.Visible = true; + errorLabel.Text = ex.Message; + } + } + } +}
\ No newline at end of file |