diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-02-01 13:18:33 -0800 |
---|---|---|
committer | Andrew <andrewarnott@gmail.com> | 2009-02-01 13:18:33 -0800 |
commit | e6512c223cb078b5f2fd4ea4abb28810ecca8c47 (patch) | |
tree | bb9dbea5e485a9a2c6aca44308659577333fba26 /samples/OpenIdProviderWebForms/user.aspx.cs | |
parent | e865ec7da293496d6c2e67039b86c4ef9ded5a6c (diff) | |
download | DotNetOpenAuth-e6512c223cb078b5f2fd4ea4abb28810ecca8c47.zip DotNetOpenAuth-e6512c223cb078b5f2fd4ea4abb28810ecca8c47.tar.gz DotNetOpenAuth-e6512c223cb078b5f2fd4ea4abb28810ecca8c47.tar.bz2 |
Renamed OpenID Provider sample directory to match project name.
Diffstat (limited to 'samples/OpenIdProviderWebForms/user.aspx.cs')
-rw-r--r-- | samples/OpenIdProviderWebForms/user.aspx.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/samples/OpenIdProviderWebForms/user.aspx.cs b/samples/OpenIdProviderWebForms/user.aspx.cs new file mode 100644 index 0000000..f530f15 --- /dev/null +++ b/samples/OpenIdProviderWebForms/user.aspx.cs @@ -0,0 +1,33 @@ +namespace OpenIdProviderWebForms { + using System; + using DotNetOpenAuth.OpenId.Provider; + + /// <summary> + /// This page is a required as part of the service discovery phase of the openid protocol (step 1). + /// </summary> + /// <remarks> + /// <para>How does a url like http://www.myserver.com/user/bob map to http://www.myserver.com/user.aspx?username=bob ? + /// Check out gobal.asax and the URLRewriter class. Essentially there's a little framework that allows for URLRewrting using the HttpContext.Current.RewritePath method.</para> + /// <para>A url such as http://www.myserver.com/user/bob which is entered on the consumer side will cause this page to be invoked. + /// This page must be parsed by the openid compatible consumer and the url of the openid server is extracted from href in: rel="openid.server" href="?". + /// It is the responsibility of the consumer to redirect the user to this url.</para> + /// <para>The XRDS (or Yadis) content is also rendered to provide the consumer with an alternative discovery mechanism. The Yadis protocol allows the consumer + /// to provide the user with a more flexible range of authentication mechanisms (which ever has been defined in xrds.aspx). See http://en.wikipedia.org/wiki/Yadis.</para> + /// </remarks> + public partial class user : System.Web.UI.Page { + protected void Page_Load(object sender, EventArgs e) { + this.usernameLabel.Text = Request.QueryString["username"]; + } + + protected void IdentityEndpoint20_NormalizeUri(object sender, IdentityEndpointNormalizationEventArgs e) { + // This sample Provider has a custom policy for normalizing URIs, which is that the whole + // path of the URI be lowercase except for the first letter of the username. + UriBuilder normalized = new UriBuilder(e.UserSuppliedIdentifier); + string username = Request.QueryString["username"].TrimEnd('/').ToLowerInvariant(); + username = username.Substring(0, 1).ToUpperInvariant() + username.Substring(1); + normalized.Path = "/user/" + username; + normalized.Scheme = "http"; // for a real Provider, this should be HTTPS if supported. + e.NormalizedIdentifier = normalized.Uri; + } + } +}
\ No newline at end of file |