summaryrefslogtreecommitdiffstats
path: root/src/OpenID/OpenIdProviderMvc/Models/User.cs
diff options
context:
space:
mode:
authorDavid Christiansen <coding@davedoes.net>2012-03-15 22:10:55 +0000
committerDavid Christiansen <coding@davedoes.net>2012-03-15 22:10:55 +0000
commita5bfa2bb8a614b1932ec8b7bbc6a0cc6bca3051f (patch)
treea3057157fa3287e0c0c4cc49be1854f9aa63d321 /src/OpenID/OpenIdProviderMvc/Models/User.cs
parent02ce959db12fec57e846e5ebfa662cd0327ce69c (diff)
downloadDotNetOpenAuth.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/OpenIdProviderMvc/Models/User.cs')
-rw-r--r--src/OpenID/OpenIdProviderMvc/Models/User.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/OpenID/OpenIdProviderMvc/Models/User.cs b/src/OpenID/OpenIdProviderMvc/Models/User.cs
new file mode 100644
index 0000000..c89d74d
--- /dev/null
+++ b/src/OpenID/OpenIdProviderMvc/Models/User.cs
@@ -0,0 +1,37 @@
+namespace OpenIdProviderMvc.Models {
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using System.Text.RegularExpressions;
+ using System.Web;
+ using System.Web.Routing;
+ using OpenIdProviderMvc.Code;
+
+ internal class User {
+ internal static Uri ClaimedIdentifierBaseUri {
+ get { return Util.GetAppPathRootedUri("user/"); }
+ }
+
+ internal static Uri GetClaimedIdentifierForUser(string username) {
+ if (string.IsNullOrEmpty(username)) {
+ throw new ArgumentNullException("username");
+ }
+
+ return new Uri(ClaimedIdentifierBaseUri, username.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));
+ }
+ }
+}