コード例 #1
0
ファイル: LogAction.cs プロジェクト: ctthang/kombit-web-net
 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
 }
コード例 #2
0
        /// <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);
            }
        }
コード例 #3
0
 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());
 }
コード例 #4
0
        /// <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);  
        }
コード例 #5
0
 /// <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);
 }
コード例 #6
0
 /// <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);
 }
コード例 #7
0
 /// <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();
 }
コード例 #8
0
 /// <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());
 }