diff options
author | Microsoft <aspnet@microsoft.com> | 2011-12-08 15:50:14 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2012-03-01 19:35:54 -0800 |
commit | 67e1a42ffe2ed7ac2bf99c703f17e4406cc35921 (patch) | |
tree | b117701274fea4bb5cfb1342c7ba20605fbaf13d /src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs | |
parent | 8f4165ee515728aca3faaa26e8354a40612e85e4 (diff) | |
download | DotNetOpenAuth-67e1a42ffe2ed7ac2bf99c703f17e4406cc35921.zip DotNetOpenAuth-67e1a42ffe2ed7ac2bf99c703f17e4406cc35921.tar.gz DotNetOpenAuth-67e1a42ffe2ed7ac2bf99c703f17e4406cc35921.tar.bz2 |
Add DotNetOpenAuth.Web and DotNetOpenAut.WebPages projects. Add commands to build nuget packages for DNOA.
Diffstat (limited to 'src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs')
-rw-r--r-- | src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs b/src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs new file mode 100644 index 0000000..b8895c0 --- /dev/null +++ b/src/DotNetOpenAuth.WebPages/WebPagesOAuthDataProvider.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Security; +using DotNetOpenAuth.Web; +using WebMatrix.WebData; + +namespace DotNetOpenAuth.WebPages +{ + internal class WebPagesOAuthDataProvider : IOAuthDataProvider + { + public WebPagesOAuthDataProvider() + { + } + + private static ExtendedMembershipProvider VerifyProvider() + { + var provider = Membership.Provider as ExtendedMembershipProvider; + if (provider == null) + { + throw new InvalidOperationException(); + } + return provider; + } + + public string GetUserNameFromOAuth(string oAuthProvider, string oAuthId) + { + ExtendedMembershipProvider provider = VerifyProvider(); + + int userId = provider.GetUserIdFromOAuth(oAuthProvider, oAuthId); + if (userId == -1) { + return null; + } + + return provider.GetUserNameFromId(userId); + } + + public void CreateOrUpdateOAuthAccount(string oAuthProvider, string oAuthId, string username) + { + ExtendedMembershipProvider provider = VerifyProvider(); + provider.CreateOrUpdateOAuthAccount(oAuthProvider, oAuthId, username); + } + + public bool DeleteOAuthAccount(string oAuthProvider, string oAuthId) + { + ExtendedMembershipProvider provider = VerifyProvider(); + + string username = GetUserNameFromOAuth(oAuthProvider, oAuthId); + if (String.IsNullOrEmpty(username)) + { + // account doesn't exist + return false; + } + + provider.DeleteOAuthAccount(oAuthProvider, oAuthId); + return true; + } + + public ICollection<OAuthAccount> GetOAuthAccountsFromUserName(string userName) + { + ExtendedMembershipProvider provider = VerifyProvider(); + return provider.GetAccountsForUser(userName).Select(p => new OAuthAccount(p.Provider, p.ProviderUserId)).ToList(); + } + } +}
\ No newline at end of file |