summaryrefslogtreecommitdiffstats
path: root/samples/OAuthAuthorizationServer/Controllers
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2011-04-07 08:01:44 -0700
committerAndrew Arnott <andrewarnott@gmail.com>2011-04-07 08:01:44 -0700
commitcb6027d9171f1411965e070a328e090594e3231c (patch)
tree2e12c640af6137b81fd765d19fdae8334d494d1f /samples/OAuthAuthorizationServer/Controllers
parent7517491e79bb91241acbd46292006e8c999ec211 (diff)
downloadDotNetOpenAuth-cb6027d9171f1411965e070a328e090594e3231c.zip
DotNetOpenAuth-cb6027d9171f1411965e070a328e090594e3231c.tar.gz
DotNetOpenAuth-cb6027d9171f1411965e070a328e090594e3231c.tar.bz2
Fixed static field initialization.
Diffstat (limited to 'samples/OAuthAuthorizationServer/Controllers')
-rw-r--r--samples/OAuthAuthorizationServer/Controllers/OAuthController.cs19
1 files changed, 6 insertions, 13 deletions
diff --git a/samples/OAuthAuthorizationServer/Controllers/OAuthController.cs b/samples/OAuthAuthorizationServer/Controllers/OAuthController.cs
index b9fbe65..47c1977 100644
--- a/samples/OAuthAuthorizationServer/Controllers/OAuthController.cs
+++ b/samples/OAuthAuthorizationServer/Controllers/OAuthController.cs
@@ -31,23 +31,14 @@
};
#else
[Obsolete("You must use a real key for a real app.", true)]
- private static readonly RSAParameters ResourceServerEncryptionPublicKey = new RSAParameters();
+ private static readonly RSAParameters ResourceServerEncryptionPublicKey;
#endif
/// <summary>
- /// The resource server's encryption service provider with private key.
- /// </summary>
- /// <remarks>
- /// Since <see cref="RSACryptoServiceProvider"/> are not thread-safe, one must be created for each thread.
- /// </remarks>
- [ThreadStatic]
- private static RSACryptoServiceProvider ResourceServerEncryptionServiceProvider = CreateResourceServerEncryptionServiceProvider();
-
- /// <summary>
/// Creates the resource server's encryption service provider with private key.
/// </summary>
/// <returns>An RSA crypto service provider.</returns>
- private static RSACryptoServiceProvider CreateResourceServerEncryptionServiceProvider() {
+ internal static RSACryptoServiceProvider CreateResourceServerEncryptionServiceProvider() {
var resourceServerEncryptionServiceProvider = new RSACryptoServiceProvider();
resourceServerEncryptionServiceProvider.ImportParameters(ResourceServerEncryptionPublicKey);
return resourceServerEncryptionServiceProvider;
@@ -71,8 +62,10 @@
// TODO: code here
// Prepare the refresh and access tokens.
- var response = this.authorizationServer.PrepareAccessTokenResponse(request, ResourceServerEncryptionServiceProvider, accessTokenLifetime);
- return this.authorizationServer.Channel.PrepareResponse(response).AsActionResult();
+ using (var crypto = CreateResourceServerEncryptionServiceProvider()) {
+ var response = this.authorizationServer.PrepareAccessTokenResponse(request, crypto, accessTokenLifetime);
+ return this.authorizationServer.Channel.PrepareResponse(response).AsActionResult();
+ }
}
throw new HttpException((int)HttpStatusCode.BadRequest, "Missing OAuth 2.0 request message.");