static void CheckExpired(int count) { if (count < 10) { return; } DateTime t = DateTime.MaxValue; DateTime now = DateTime.Now; ArrayList list = null; foreach (int key in cache.Keys) { DigestSession elem = (DigestSession)cache [key]; if (elem.LastUse < t && (elem.LastUse - now).Ticks > TimeSpan.TicksPerMinute * 10) { t = elem.LastUse; if (list == null) { list = new ArrayList(); } list.Add(key); } } if (list != null) { foreach (int k in list) { cache.Remove(k); } } }
private static void CheckExpired(int count) { if (count < 10) { return; } DateTime t = DateTime.MaxValue; DateTime now = DateTime.Now; ArrayList arrayList = null; foreach (object obj in DigestClient.cache.Keys) { int num = (int)obj; DigestSession digestSession = (DigestSession)DigestClient.cache[num]; if (digestSession.LastUse < t && (digestSession.LastUse - now).Ticks > 6000000000L) { t = digestSession.LastUse; if (arrayList == null) { arrayList = new ArrayList(); } arrayList.Add(num); } } if (arrayList != null) { foreach (object obj2 in arrayList) { int num2 = (int)obj2; DigestClient.cache.Remove(num2); } } }
private static void CheckExpired(int count) { if (count >= 10) { DateTime t = DateTime.MaxValue; DateTime now = DateTime.Now; ArrayList arrayList = null; foreach (int key in cache.Keys) { DigestSession digestSession = (DigestSession)cache[key]; if (digestSession.LastUse < t && (digestSession.LastUse - now).Ticks > 6000000000L) { t = digestSession.LastUse; if (arrayList == null) { arrayList = new ArrayList(); } arrayList.Add(key); } } if (arrayList != null) { foreach (int item in arrayList) { cache.Remove(item); } } } }
// IAuthenticationModule public Authorization Authenticate(string challenge, WebRequest webRequest, ICredentials credentials) { if (credentials == null || challenge == null) { return(null); } string header = challenge.Trim(); if (header.ToLower().IndexOf("digest") == -1) { return(null); } HttpWebRequest request = webRequest as HttpWebRequest; if (request == null) { return(null); } DigestSession currDS = new DigestSession(); if (!currDS.Parse(challenge)) { return(null); } int hashcode = request.Address.GetHashCode() ^ credentials.GetHashCode() ^ currDS.Nonce.GetHashCode(); DigestSession ds = (DigestSession)Cache [hashcode]; bool addDS = (ds == null); if (addDS) { ds = currDS; } else if (!ds.Parse(challenge)) { return(null); } if (addDS) { Cache.Add(hashcode, ds); } return(ds.Authenticate(webRequest, credentials)); }
public Authorization PreAuthenticate(WebRequest webRequest, ICredentials credentials) { HttpWebRequest httpWebRequest = webRequest as HttpWebRequest; if (httpWebRequest == null) { return(null); } if (credentials == null) { return(null); } int num = httpWebRequest.Address.GetHashCode() ^ credentials.GetHashCode(); DigestSession digestSession = (DigestSession)DigestClient.Cache[num]; if (digestSession == null) { return(null); } return(digestSession.Authenticate(webRequest, credentials)); }
public Authorization PreAuthenticate(WebRequest webRequest, ICredentials credentials) { HttpWebRequest request = webRequest as HttpWebRequest; if (request == null) { return(null); } if (credentials == null) { return(null); } int hashcode = request.Address.GetHashCode() ^ credentials.GetHashCode(); DigestSession ds = (DigestSession)Cache [hashcode]; if (ds == null) { return(null); } return(ds.Authenticate(webRequest, credentials)); }
public Authorization Authenticate(string challenge, WebRequest webRequest, ICredentials credentials) { if (credentials == null || challenge == null) { return(null); } string text = challenge.Trim(); if (text.ToLower().IndexOf("digest") == -1) { return(null); } HttpWebRequest httpWebRequest = webRequest as HttpWebRequest; if (httpWebRequest == null) { return(null); } int num = httpWebRequest.Address.GetHashCode() ^ credentials.GetHashCode(); DigestSession digestSession = (DigestSession)DigestClient.Cache[num]; bool flag = digestSession == null; if (flag) { digestSession = new DigestSession(); } if (!digestSession.Parse(challenge)) { return(null); } if (flag) { DigestClient.Cache.Add(num, digestSession); } return(digestSession.Authenticate(webRequest, credentials)); }
// IAuthenticationModule public Authorization Authenticate (string challenge, WebRequest webRequest, ICredentials credentials) { if (credentials == null || challenge == null) return null; string header = challenge.Trim (); if (header.ToLower ().IndexOf ("digest") == -1) return null; HttpWebRequest request = webRequest as HttpWebRequest; if (request == null) return null; DigestSession currDS = new DigestSession(); if (!currDS.Parse (challenge)) return null; int hashcode = request.Address.GetHashCode () ^ credentials.GetHashCode () ^ currDS.Nonce.GetHashCode (); DigestSession ds = (DigestSession) Cache [hashcode]; bool addDS = (ds == null); if (addDS) ds = currDS; else if (!ds.Parse (challenge)) return null; if (addDS) Cache.Add (hashcode, ds); return ds.Authenticate (webRequest, credentials); }