Example #1
0
        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);
                }
            }
        }
Example #3
0
 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);
             }
         }
     }
 }
Example #4
0
        // 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));
        }
Example #6
0
        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));
        }
Example #8
0
		// 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);
		}