diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-03-16 09:22:08 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-03-16 09:22:08 -0700 |
commit | 45068758daa9d7747565af3f95bea7abfa2db54a (patch) | |
tree | b11c17d32763b77e4bfc03005e202b0c14e8bbdf /samples/OpenIdProviderMvc/Models/User.cs | |
parent | e72da4887ebf36073d1235e28e44b44004602311 (diff) | |
download | DotNetOpenAuth-45068758daa9d7747565af3f95bea7abfa2db54a.zip DotNetOpenAuth-45068758daa9d7747565af3f95bea7abfa2db54a.tar.gz DotNetOpenAuth-45068758daa9d7747565af3f95bea7abfa2db54a.tar.bz2 |
Added ASP.NET MVC OpenID Provider sample.
Diffstat (limited to 'samples/OpenIdProviderMvc/Models/User.cs')
-rw-r--r-- | samples/OpenIdProviderMvc/Models/User.cs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/samples/OpenIdProviderMvc/Models/User.cs b/samples/OpenIdProviderMvc/Models/User.cs new file mode 100644 index 0000000..577aa05 --- /dev/null +++ b/samples/OpenIdProviderMvc/Models/User.cs @@ -0,0 +1,35 @@ +namespace OpenIdProviderMvc.Models { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text.RegularExpressions; + using System.Web; + using System.Web.Routing; + + internal class User { + internal static Uri GetClaimedIdentifierForUser(string username) { + string appPath = HttpContext.Current.Request.ApplicationPath; + if (!appPath.EndsWith("/")) { + appPath += "/"; + } + Uri claimedIdentifier = new Uri( + HttpContext.Current.Request.Url, + appPath + "user/" + username); + return new Uri(claimedIdentifier.AbsoluteUri.ToLowerInvariant()); + } + + internal static string GetUserFromClaimedIdentifier(Uri claimedIdentifier) { + Regex regex = new Regex(@"/user/([^/\?]+)"); + Match m = regex.Match(claimedIdentifier.AbsoluteUri); + if (!m.Success) { + throw new ArgumentException(); + } + + return m.Groups[1].Value; + } + + internal static Uri GetNormalizedClaimedIdentifier(Uri uri) { + return GetClaimedIdentifierForUser(GetUserFromClaimedIdentifier(uri)); + } + } +} |