Ejemplo n.º 1
0
        /// <summary>
        /// Adds the specified LogoutRequest to the collection of previously
        /// sent requests, maintaining the imposed limit as defined by
        /// MaximumRequestsStored.  This collection is represented as a
        /// queue and is attached to the user's session.
        /// </summary>
        /// <param name="context">
        /// HttpContext containing session, request, and response objects.
        /// </param>
        /// <param name="logoutRequest">
        /// LogoutRequest to add to the collection.
        /// </param>
        internal static void AddSentLogoutRequest(HttpContext context, LogoutRequest logoutRequest)
        {
            Queue logoutRequests = LogoutRequestCache.GetSentLogoutRequests(context);

            if (logoutRequests == null)
            {
                logoutRequests = new Queue(LogoutRequestCache.MaximumRequestsStored);
            }

            if (logoutRequests.Count == LogoutRequestCache.MaximumRequestsStored)
            {
                logoutRequests.Dequeue();
            }

            logoutRequests.Enqueue(logoutRequest);
            context.Session[LogoutRequestCache.LogoutRequestSessionAttribute] = logoutRequests;

            StringBuilder message = new StringBuilder();

            message.Append("LogoutRequestCache:\r\n");
            IEnumerator i = logoutRequests.GetEnumerator();

            while (i.MoveNext())
            {
                LogoutRequest l = (LogoutRequest)i.Current;
                message.Append(l.Id + "\r\n");
            }

            FedletLogger.Info(message.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds the specified AuthnRequest to the collection of previously
        /// sent requests, maintaining the imposed limit as defined by
        /// MaximumRequestsStored.  This collection is represented as a
        /// queue and is attached to the user's session.
        /// </summary>
        /// <param name="context">
        /// HttpContext containing session, request, and response objects.
        /// </param>
        /// <param name="authnRequest">AuthnRequest to add to the collection.</param>
        internal static void AddSentAuthnRequest(HttpContext context, AuthnRequest authnRequest)
        {
            Queue authnRequests = AuthnRequestCache.GetSentAuthnRequests(context);

            if (authnRequests == null)
            {
                authnRequests = new Queue(AuthnRequestCache.MaximumRequestsStored);
            }

            if (authnRequests.Count == AuthnRequestCache.MaximumRequestsStored)
            {
                authnRequests.Dequeue();
            }

            authnRequests.Enqueue(authnRequest);
            context.Session[AuthnRequestCache.AuthnRequestSessionAttribute] = authnRequests;

            StringBuilder message = new StringBuilder();

            message.Append("AuthnRequestsCache:\r\n");
            IEnumerator i = authnRequests.GetEnumerator();

            while (i.MoveNext())
            {
                AuthnRequest a = (AuthnRequest)i.Current;
                message.Append(a.Id + "\r\n");
            }

            FedletLogger.Info(message.ToString());
        }