/// <summary>
 /// Constructs an ITicketValidator for SAML 1.1 responses from the CAS server,
 /// initializing it with the supplied configuration data.
 /// </summary>
 /// <param name="config">
 /// ConfigurationManager to be used to obtain the settings needed by this
 /// ticket validator
 /// </param>
 public Saml11TicketValidator(CasClientConfiguration config)
   : base(config)
 {
   this.TicketTimeTolerance = config.TicketTimeTolerance;
   if (log.IsInfoEnabled) {
     log.Info(string.Format("{0}:Loaded TicketTimeTolerance property: {1}",
       CommonUtils.MethodName, this.TicketTimeTolerance));
   }
 }
    /// <summary>
    /// Constructs an ITicketValidator, initializing it with the supplied
    /// configuration data.
    /// </summary>
    /// <param name="config">
    /// ConfigurationManager to be used to obtain the settings needed by this
    /// ticket validator
    /// </param>
    protected AbstractUrlTicketValidator(CasClientConfiguration config)
    {
      this.CasServerUrlPrefix = config.CasServerUrlPrefix;
      if (log.IsInfoEnabled) {
        log.Info(string.Format("{0}:Loaded CasServerUrlPrefix property: {1}",
          CommonUtils.MethodName, this.CasServerUrlPrefix));
      }

      this.ArtifactParameterName = config.ArtifactParameterNameValidation;
      if (log.IsInfoEnabled) {
        log.Info(string.Format("{0}:Loaded ArtifactParameterName property: {1}",
          CommonUtils.MethodName, this.ArtifactParameterName));
      }

      this.ServiceParameterName = config.ServiceParameterNameValidation;
      if (log.IsInfoEnabled) {
        log.Info(string.Format("{0}:Loaded ServiceParameterName property: {1}",
          CommonUtils.MethodName, this.ServiceParameterName));
      }

      this.EncodeServiceUrl = config.EncodeServiceUrl;
      if (log.IsInfoEnabled) {
        log.Info(string.Format("{0}:Loaded EncodeServiceUrl property: {1}",
          CommonUtils.MethodName, this.EncodeServiceUrl));
      }

      this.Renew = config.Renew;
      if (log.IsInfoEnabled) {
        log.Info(string.Format("{0}:Loaded Renew property: {1}",
          CommonUtils.MethodName, this.Renew));
      }

      CommonUtils.AssertTrue(CommonUtils.IsNotBlank(this.CasServerUrlPrefix),
                  CasClientConfiguration.CAS_SERVER_URL_PREFIX + " cannot be null or empty.");
      CommonUtils.AssertTrue(CommonUtils.IsNotBlank(this.ArtifactParameterName),
                  CasClientConfiguration.ARTIFACT_PARAMETER_NAME + " cannot be null or empty.");
      CommonUtils.AssertTrue(CommonUtils.IsNotBlank(this.ServiceParameterName),
                  CasClientConfiguration.SERVICE_PARAMETER_NAME + " cannot be null or empty.");

      if (log.IsDebugEnabled) {
        log.Debug(string.Format("{0}:Construct using casServerUrlPrefix>{1}<",
                  CommonUtils.MethodName, this.CasServerUrlPrefix));
      }
    }
 /// <summary>
 /// Constructs a SessionBasedSingleSignOutHandler, initializing it with the supplied
 /// configuration data.
 /// </summary>
 /// <param name="config">
 /// ConfigurationManager to be used to obtain the settings needed by this
 /// single sign out handler
 /// </param>
 public FormsBasedSingleSignOutHandler(CasClientConfiguration config)
   : base(config) { }
 /// <summary>
 /// Constructs an ITicketValidator, initializing it with the supplied
 /// configuration data.
 /// </summary>
 /// <param name="config">
 /// ConfigurationManager to be used to obtain the settings needed by this
 /// ticket validator
 /// </param>
 public Cas20ServiceTicketValidator(CasClientConfiguration config)
   : base(config) { }
 /// <summary>
 /// Constructs an ISingleSignOutHandler, initializing it with the supplied
 /// configuration data.
 /// </summary>
 /// <param name="config">
 /// ConfigurationManager to be used to obtain the settings needed by this
 /// single sign out handler
 /// </param>
 protected AbstractSingleSignOutHandler(CasClientConfiguration config)
 {
   if (SESSION_MAPPING_STORAGE == null) {
     SESSION_MAPPING_STORAGE = new DictionarySessionMappingStorage();
   }     
 }
 /// <summary>
 /// Constructs an ITicketValidator, initializing it with the supplied
 /// configuration data.
 /// </summary>
 /// <param name="config">
 /// ConfigurationManager to be used to obtain the settings needed by this
 /// ticket validator
 /// </param>
 public Cas10TicketValidator(CasClientConfiguration config)
   : base(config) { }