Beispiel #1
0
 public void LoginAction(dk.nita.saml20.protocol.AbstractEndpointHandler handler, HttpContext context,
                         dk.nita.saml20.Saml20Assertion assertion)
 {
     // Since FormsAuthentication is used in this sample, the user name to log can be found in context.User.Identity.Name.
     // This user will not be set until after a new redirect, so unfortunately we cannot just log it here,
     // but will have to do in MyPage.Load in order to log the local user id
 }
        /// <summary>
        /// Action performed during login.
        /// </summary>
        /// <param name="handler">The handler initiating the call.</param>
        /// <param name="context">The current http context.</param>
        /// <param name="assertion">The saml assertion of the currently logged in user.</param>
        public void LoginAction(AbstractEndpointHandler handler, HttpContext context, Saml20Assertion assertion)
        {
            string idpKey = (string) context.Session[Saml20SignonHandler.IDPLoginSessionKey];
            Saml20SignonHandler h = (Saml20SignonHandler) handler;
            IDPEndPoint ep = h.RetrieveIDPConfiguration(idpKey);
            if (ep.CDC.ExtraSettings != null)
            {
                List<KeyValue> values = ep.CDC.ExtraSettings.KeyValues;

                KeyValue idpEndpoint = values.Find(delegate(KeyValue kv) { return kv.Key == IDPCookieWriterEndPoint; });
                if (idpEndpoint == null)
                    throw new Saml20Exception(@"Please specify """ + IDPCookieWriterEndPoint +
                                              @""" in Settings element.");

                KeyValue localReturnPoint = values.Find(delegate(KeyValue kv) { return kv.Key == LocalReturnUrl; });
                if(localReturnPoint == null)
                    throw new Saml20Exception(@"Please specify """ + LocalReturnUrl +
                                              @""" in Settings element.");

                string url = idpEndpoint.Value + "?" + TargetResource + "=" + localReturnPoint.Value;

                context.Response.Redirect(url);
            }else
            {
                handler.DoRedirect(context);
            }
        }
 public void LogoutAction(dk.nita.saml20.protocol.AbstractEndpointHandler handler, HttpContext context, bool IdPInitiated)
 {
     // Example of logging required by the requirements SLO1 ("Id of internal user account")
     // Since FormsAuthentication is used in this sample, the user name to log can be found in context.User.Identity.Name
     // The login will be not be cleared until next redirect due to the way FormsAuthentication works, so we will have to check Saml20Identity.IsInitialized() too
     AuditLogging.logEntry(Direction.IN, Operation.LOGOUT, "ServiceProvider logout",
                           "SP local user id: " + (context.User.Identity.IsAuthenticated ? context.User.Identity.Name : "none") + " login status: " + Saml20Identity.IsInitialized());
 }
        /// <summary>
        /// Action performed during login.
        /// </summary>
        /// <param name="handler">The handler initiating the call.</param>
        /// <param name="context">The current http context.</param>
        /// <param name="assertion">The saml assertion of the currently logged in user.</param>
        public void LoginAction(AbstractEndpointHandler handler, HttpContext context, Saml20Assertion assertion)
        {
            Saml20SignonHandler signonhandler = (Saml20SignonHandler)handler;
            IPrincipal prince = Saml20Identity.InitSaml20Identity(assertion, signonhandler.RetrieveIDPConfiguration((string)context.Session[Saml20AbstractEndpointHandler.IDPTempSessionKey]));

            Saml20PrincipalCache.AddPrincipal(prince);

            FormsAuthentication.SetAuthCookie(prince.Identity.Name, false);  
        }
 /// <summary>
 /// Action performed during logout.
 /// </summary>
 /// <param name="handler">The handler.</param>
 /// <param name="context">The context.</param>
 /// <param name="IdPInitiated">During IdP initiated logout some actions such as redirecting should not be performed</param>
 public void LogoutAction(AbstractEndpointHandler handler, HttpContext context, bool IdPInitiated)
 {
     if (!IdPInitiated)
         handler.DoRedirect(context);
 }
 /// <summary>
 /// Action performed during login.
 /// </summary>
 /// <param name="handler">The handler initiating the call.</param>
 /// <param name="context">The current http context.</param>
 /// <param name="assertion">The saml assertion of the currently logged in user.</param>
 public void LoginAction(AbstractEndpointHandler handler, HttpContext context, Saml20Assertion assertion)
 {
     handler.DoRedirect(context);
 }
 /// <summary>
 /// Action performed during logout.
 /// </summary>
 /// <param name="handler">The handler.</param>
 /// <param name="context">The context.</param>
 /// <param name="IdPInitiated">During IdP initiated logout some actions such as redirecting should not be performed</param>
 public void LogoutAction(AbstractEndpointHandler handler, HttpContext context, bool IdPInitiated)
 {
     FormsAuthentication.SignOut();
     Saml20PrincipalCache.Clear();
 }
 /// <summary>
 ///     <see cref="IAction.SoapLogoutAction" />
 /// </summary>
 public void SoapLogoutAction(AbstractEndpointHandler handler, HttpContext context, string userId)
 {
     AuditLogging.logEntry(Direction.IN, Operation.LOGOUT, "ServiceProvider SOAP logout",
         "IdP user id: " + userId + " login status: " + Saml20Identity.IsInitialized());
 }