Bladeren bron

2005-03-02 Gonzalo Paniagua Javier <[email protected]>

	* SessionStateModule.cs:
	* SessionId.cs: share the same RNG for all the instances of
	SessionStateModule.


svn path=/trunk/mcs/; revision=41373
Gonzalo Paniagua Javier 21 jaren geleden
bovenliggende
commit
7d736eabc2

+ 6 - 0
mcs/class/System.Web/System.Web.SessionState/ChangeLog

@@ -1,3 +1,9 @@
+2005-03-02 Gonzalo Paniagua Javier <[email protected]>
+
+	* SessionStateModule.cs:
+	* SessionId.cs: share the same RNG for all the instances of
+	SessionStateModule.
+
 2005-02-05 Gonzalo Paniagua Javier <[email protected]>
 
 	* SessionStateModule.cs: hack that makes static files work on sites that

+ 4 - 2
mcs/class/System.Web/System.Web.SessionState/SessionId.cs

@@ -49,8 +49,10 @@ namespace System.Web.SessionState {
 				throw new ArgumentNullException ("rng");
 			
 			byte[] key = new byte [half_len];
-			
-			rng.GetBytes (key);
+
+			lock (rng) {
+				rng.GetBytes (key);
+			}
 			return Encode (key);
 		}
 

+ 1 - 2
mcs/class/System.Web/System.Web.SessionState/SessionStateModule.cs

@@ -47,11 +47,10 @@ namespace System.Web.SessionState
 		ISessionHandler handler;
 		bool sessionForStaticFiles;
 		
-		private RandomNumberGenerator rng;
+		static RandomNumberGenerator rng = new RNGCryptoServiceProvider ();
 		
 		public SessionStateModule ()
 		{
-			rng = new RNGCryptoServiceProvider ();
 		}
 
 		internal RandomNumberGenerator Rng {