diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-01 21:26:10 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-03-01 21:26:10 -0800 |
commit | 74b6b4efd2be2680e3067f716829b0c9385ceebe (patch) | |
tree | 5f241db63080c6547d9cc635b0bf36dd587b5354 /samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs | |
parent | 798fa1c5f55058eb241f257d15e2dd630eb3d4fd (diff) | |
download | DotNetOpenAuth-74b6b4efd2be2680e3067f716829b0c9385ceebe.zip DotNetOpenAuth-74b6b4efd2be2680e3067f716829b0c9385ceebe.tar.gz DotNetOpenAuth-74b6b4efd2be2680e3067f716829b0c9385ceebe.tar.bz2 |
Adds a WebAPI sample that is its own authorization server and resource server.
Diffstat (limited to 'samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs')
-rw-r--r-- | samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs b/samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs new file mode 100644 index 0000000..73c5864 --- /dev/null +++ b/samples/OAuth2ProtectedWebApi/Code/AuthorizationServerHost.cs @@ -0,0 +1,49 @@ +namespace OAuth2ProtectedWebApi { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Web; + using DotNetOpenAuth.Messaging.Bindings; + using DotNetOpenAuth.OAuth2; + using DotNetOpenAuth.OAuth2.ChannelElements; + using DotNetOpenAuth.OAuth2.Messages; + using OAuth2ProtectedWebApi.Code; + + public class AuthorizationServerHost : IAuthorizationServerHost { + private static ICryptoKeyStore cryptoKeyStore = MemoryCryptoKeyStore.Instance; + + private static INonceStore nonceStore = new MemoryNonceStore(); + + public ICryptoKeyStore CryptoKeyStore { + get { return cryptoKeyStore; } + } + + public INonceStore NonceStore { + get { return nonceStore; } + } + + public AccessTokenResult CreateAccessToken(IAccessTokenRequest accessTokenRequestMessage) { + var accessToken = new AuthorizationServerAccessToken(); + accessToken.Lifetime = TimeSpan.FromHours(1); + accessToken.SymmetricKeyStore = this.CryptoKeyStore; + var result = new AccessTokenResult(accessToken); + return result; + } + + public IClientDescription GetClient(string clientIdentifier) { + return new ClientDescription("zzz", new Uri("http://www.microsoft.com/en-us/default.aspx"), ClientType.Confidential); + } + + public bool IsAuthorizationValid(IAuthorizationDescription authorization) { + return true; + } + + public AutomatedUserAuthorizationCheckResponse CheckAuthorizeResourceOwnerCredentialGrant(string userName, string password, IAccessTokenRequest accessRequest) { + throw new NotSupportedException(); + } + + public AutomatedAuthorizationCheckResponse CheckAuthorizeClientCredentialsGrant(IAccessTokenRequest accessRequest) { + throw new NotSupportedException(); + } + } +}
\ No newline at end of file |