diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/DotNetOpenAuth/ComponentModel/ConverterBase.cs | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/ComponentModel/UriConverter.cs | 5 | ||||
-rw-r--r-- | src/DotNetOpenAuth/DotNetOpenAuth.csproj | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/InfoCard/ReceivingTokenEventArgs.cs | 1 | ||||
-rw-r--r-- | src/DotNetOpenAuth/InfoCard/Token/TokenDecryptor.cs | 1 | ||||
-rw-r--r-- | src/DotNetOpenAuth/InfoCard/Token/TokenUtility.cs | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/InfoCard/WellKnownIssuers.cs | 2 | ||||
-rw-r--r-- | src/DotNetOpenAuth/Logger.cs | 11 | ||||
-rw-r--r-- | src/DotNetOpenAuth/Loggers/ILog.cs | 115 | ||||
-rw-r--r-- | src/DotNetOpenAuth/Loggers/NoOpLogger.cs | 20 | ||||
-rw-r--r-- | src/DotNetOpenAuth/Loggers/TraceLogger.cs | 35 | ||||
-rw-r--r-- | src/DotNetOpenAuth/OpenId/ChannelElements/SigningBindingElement.cs | 1 | ||||
-rw-r--r-- | src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs | 4 |
14 files changed, 22 insertions, 181 deletions
diff --git a/src/DotNetOpenAuth/ComponentModel/ConverterBase.cs b/src/DotNetOpenAuth/ComponentModel/ConverterBase.cs index c38c15e..a7d58c7 100644 --- a/src/DotNetOpenAuth/ComponentModel/ConverterBase.cs +++ b/src/DotNetOpenAuth/ComponentModel/ConverterBase.cs @@ -9,6 +9,7 @@ namespace DotNetOpenAuth.ComponentModel { using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; + using System.Diagnostics.CodeAnalysis; using System.Diagnostics.Contracts; using System.Globalization; @@ -155,6 +156,7 @@ namespace DotNetOpenAuth.ComponentModel { /// </summary> /// <returns>A collection of the standard values.</returns> [Pure] + [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Potentially expensive call.")] protected virtual ICollection GetStandardValuesForCache() { Contract.Ensures(Contract.Result<ICollection>() != null); return new T[0]; diff --git a/src/DotNetOpenAuth/ComponentModel/UriConverter.cs b/src/DotNetOpenAuth/ComponentModel/UriConverter.cs index 93e4809..4412199 100644 --- a/src/DotNetOpenAuth/ComponentModel/UriConverter.cs +++ b/src/DotNetOpenAuth/ComponentModel/UriConverter.cs @@ -40,9 +40,10 @@ namespace DotNetOpenAuth.ComponentModel { /// true if the specified value is valid for this object; otherwise, false. /// </returns> public override bool IsValid(ITypeDescriptorContext context, object value) { + Uri uriValue; string stringValue; - if (value is Uri) { - return ((Uri)value).IsAbsoluteUri; + if ((uriValue = value as Uri) != null) { + return uriValue.IsAbsoluteUri; } else if ((stringValue = value as string) != null) { Uri result; return stringValue.Length == 0 || Uri.TryCreate(stringValue, UriKind.Absolute, out result); diff --git a/src/DotNetOpenAuth/DotNetOpenAuth.csproj b/src/DotNetOpenAuth/DotNetOpenAuth.csproj index d1d73e0..ed7fd02 100644 --- a/src/DotNetOpenAuth/DotNetOpenAuth.csproj +++ b/src/DotNetOpenAuth/DotNetOpenAuth.csproj @@ -25,7 +25,7 @@ <DocumentationFile>..\..\bin\Debug\DotNetOpenAuth.xml</DocumentationFile> <RunCodeAnalysis>false</RunCodeAnalysis> <CodeAnalysisRules>-Microsoft.Design#CA1054;-Microsoft.Design#CA1056;-Microsoft.Design#CA1055</CodeAnalysisRules> - <CodeContractsEnableRuntimeChecking>True</CodeContractsEnableRuntimeChecking> + <CodeContractsEnableRuntimeChecking>False</CodeContractsEnableRuntimeChecking> <CodeContractsCustomRewriterAssembly> </CodeContractsCustomRewriterAssembly> <CodeContractsCustomRewriterClass> diff --git a/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs b/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs index a23db1d..48f0100 100644 --- a/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs +++ b/src/DotNetOpenAuth/InfoCard/InfoCardSelector.cs @@ -11,6 +11,7 @@ namespace DotNetOpenAuth.InfoCard { using System; using System.Collections.ObjectModel; using System.ComponentModel; + using System.Diagnostics.CodeAnalysis; using System.Diagnostics.Contracts; using System.Drawing.Design; using System.Globalization; @@ -409,6 +410,7 @@ namespace DotNetOpenAuth.InfoCard { /// <param name="tokenXml">The token XML, prior to any processing.</param> /// <param name="decryptor">The decryptor to use, if the token is encrypted.</param> /// <returns>The event arguments sent to the event handlers.</returns> + [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "decryptor", Justification = "By design")] protected virtual ReceivingTokenEventArgs OnReceivingToken(string tokenXml, TokenDecryptor decryptor) { Contract.Requires(tokenXml != null); ErrorUtilities.VerifyArgumentNotNull(tokenXml, "tokenXml"); diff --git a/src/DotNetOpenAuth/InfoCard/ReceivingTokenEventArgs.cs b/src/DotNetOpenAuth/InfoCard/ReceivingTokenEventArgs.cs index 8656c10..004d134 100644 --- a/src/DotNetOpenAuth/InfoCard/ReceivingTokenEventArgs.cs +++ b/src/DotNetOpenAuth/InfoCard/ReceivingTokenEventArgs.cs @@ -43,6 +43,7 @@ namespace DotNetOpenAuth.InfoCard { /// Gets the object that will perform token decryption, if necessary. /// </summary> /// <value>The decryptor to use; or <c>null</c> if the token is not encrypted.</value> + [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Decryptor", Justification = "By design")] public TokenDecryptor Decryptor { get; private set; } /// <summary> diff --git a/src/DotNetOpenAuth/InfoCard/Token/TokenDecryptor.cs b/src/DotNetOpenAuth/InfoCard/Token/TokenDecryptor.cs index d0ff08b..5d1be94 100644 --- a/src/DotNetOpenAuth/InfoCard/Token/TokenDecryptor.cs +++ b/src/DotNetOpenAuth/InfoCard/Token/TokenDecryptor.cs @@ -26,6 +26,7 @@ namespace DotNetOpenAuth.InfoCard { /// <summary> /// A utility class for decrypting InfoCard tokens. /// </summary> + [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Decryptor", Justification = "By design")] public class TokenDecryptor { /// <summary> /// Backing field for the <see cref="Tokens"/> property. diff --git a/src/DotNetOpenAuth/InfoCard/Token/TokenUtility.cs b/src/DotNetOpenAuth/InfoCard/Token/TokenUtility.cs index 7a36178..85b951d 100644 --- a/src/DotNetOpenAuth/InfoCard/Token/TokenUtility.cs +++ b/src/DotNetOpenAuth/InfoCard/Token/TokenUtility.cs @@ -62,7 +62,7 @@ namespace DotNetOpenAuth.InfoCard { //// throw new InformationCardException("Token Security Keys Exist"); if (audience == null) { - Logger.InfoCard.WarnFormat("SAML token Audience checking will be skipped."); + Logger.InfoCard.Warn("SAML token Audience checking will be skipped."); } else { if (token.Assertion.Conditions != null && token.Assertion.Conditions.Conditions != null) { diff --git a/src/DotNetOpenAuth/InfoCard/WellKnownIssuers.cs b/src/DotNetOpenAuth/InfoCard/WellKnownIssuers.cs index 1b4b3ae..8c63287 100644 --- a/src/DotNetOpenAuth/InfoCard/WellKnownIssuers.cs +++ b/src/DotNetOpenAuth/InfoCard/WellKnownIssuers.cs @@ -8,7 +8,7 @@ namespace DotNetOpenAuth.InfoCard { /// <summary> /// Common InfoCard issuers. /// </summary> - public class WellKnownIssuers { + public sealed class WellKnownIssuers { /// <summary> /// The Issuer URI to use for self-issued cards. /// </summary> diff --git a/src/DotNetOpenAuth/Logger.cs b/src/DotNetOpenAuth/Logger.cs index 1ab913c..6015df5 100644 --- a/src/DotNetOpenAuth/Logger.cs +++ b/src/DotNetOpenAuth/Logger.cs @@ -20,13 +20,13 @@ namespace DotNetOpenAuth { /// <see cref="CultureInfo.InvariantCulture"/> is used implicitly. /// </remarks> internal static partial class Logger { + #region Category-specific loggers + /// <summary> /// The <see cref="ILog"/> instance that is to be used /// by this static Logger for the duration of the appdomain. /// </summary> - private static readonly ILog facade = CreateWithBanner("DotNetOpenAuth"); - - #region Category-specific loggers + private static readonly ILog library = CreateWithBanner("DotNetOpenAuth"); /// <summary> /// Backing field for the <see cref="Yadis"/> property. @@ -74,6 +74,11 @@ namespace DotNetOpenAuth { private static readonly ILog infocard = Create("DotNetOpenAuth.InfoCard"); /// <summary> + /// Gets the logger for general library logging. + /// </summary> + internal static ILog Library { get { return library; } } + + /// <summary> /// Gets the logger for service discovery and selection events. /// </summary> internal static ILog Yadis { get { return yadis; } } diff --git a/src/DotNetOpenAuth/Loggers/ILog.cs b/src/DotNetOpenAuth/Loggers/ILog.cs index 8a285a7..4ddbd49 100644 --- a/src/DotNetOpenAuth/Loggers/ILog.cs +++ b/src/DotNetOpenAuth/Loggers/ILog.cs @@ -202,28 +202,6 @@ namespace DotNetOpenAuth.Loggers /// <seealso cref="IsDebugEnabled"/> void DebugFormat(string format, object arg0, object arg1, object arg2); - /// <summary> - /// Logs a formatted message string with the <see cref="Level.Debug"/> level. - /// </summary> - /// <param name="provider">An <see cref="IFormatProvider"/> that supplies culture-specific formatting information</param> - /// <param name="format">A String containing zero or more format items</param> - /// <param name="args">An Object array containing zero or more objects to format</param> - /// <remarks> - /// <para> - /// The message is formatted using the <c>String.Format</c> method. See - /// <see cref="String.Format(string, object[])"/> for details of the syntax of the format string and the behavior - /// of the formatting. - /// </para> - /// <para> - /// This method does not take an <see cref="Exception"/> object to include in the - /// log event. To pass an <see cref="Exception"/> use one of the <see cref="Debug(object,Exception)"/> - /// methods instead. - /// </para> - /// </remarks> - /// <seealso cref="Debug(object)"/> - /// <seealso cref="IsDebugEnabled"/> - void DebugFormat(IFormatProvider provider, string format, params object[] args); - /// <overloads>Log a message object with the <see cref="Level.Info"/> level.</overloads> /// <summary> /// Logs a message object with the <see cref="Level.Info"/> level. @@ -355,28 +333,6 @@ namespace DotNetOpenAuth.Loggers /// <seealso cref="IsInfoEnabled"/> void InfoFormat(string format, object arg0, object arg1, object arg2); - /// <summary> - /// Logs a formatted message string with the <see cref="Level.Info"/> level. - /// </summary> - /// <param name="provider">An <see cref="IFormatProvider"/> that supplies culture-specific formatting information</param> - /// <param name="format">A String containing zero or more format items</param> - /// <param name="args">An Object array containing zero or more objects to format</param> - /// <remarks> - /// <para> - /// The message is formatted using the <c>String.Format</c> method. See - /// <see cref="String.Format(string, object[])"/> for details of the syntax of the format string and the behavior - /// of the formatting. - /// </para> - /// <para> - /// This method does not take an <see cref="Exception"/> object to include in the - /// log event. To pass an <see cref="Exception"/> use one of the <see cref="Info(object)"/> - /// methods instead. - /// </para> - /// </remarks> - /// <seealso cref="Info(object,Exception)"/> - /// <seealso cref="IsInfoEnabled"/> - void InfoFormat(IFormatProvider provider, string format, params object[] args); - /// <overloads>Log a message object with the <see cref="Level.Warn"/> level.</overloads> /// <summary> /// Log a message object with the <see cref="Level.Warn"/> level. @@ -508,28 +464,6 @@ namespace DotNetOpenAuth.Loggers /// <seealso cref="IsWarnEnabled"/> void WarnFormat(string format, object arg0, object arg1, object arg2); - /// <summary> - /// Logs a formatted message string with the <see cref="Level.Warn"/> level. - /// </summary> - /// <param name="provider">An <see cref="IFormatProvider"/> that supplies culture-specific formatting information</param> - /// <param name="format">A String containing zero or more format items</param> - /// <param name="args">An Object array containing zero or more objects to format</param> - /// <remarks> - /// <para> - /// The message is formatted using the <c>String.Format</c> method. See - /// <see cref="String.Format(string, object[])"/> for details of the syntax of the format string and the behavior - /// of the formatting. - /// </para> - /// <para> - /// This method does not take an <see cref="Exception"/> object to include in the - /// log event. To pass an <see cref="Exception"/> use one of the <see cref="Warn(object)"/> - /// methods instead. - /// </para> - /// </remarks> - /// <seealso cref="Warn(object,Exception)"/> - /// <seealso cref="IsWarnEnabled"/> - void WarnFormat(IFormatProvider provider, string format, params object[] args); - /// <overloads>Log a message object with the <see cref="Level.Error"/> level.</overloads> /// <summary> /// Logs a message object with the <see cref="Level.Error"/> level. @@ -661,28 +595,6 @@ namespace DotNetOpenAuth.Loggers /// <seealso cref="IsErrorEnabled"/> void ErrorFormat(string format, object arg0, object arg1, object arg2); - /// <summary> - /// Logs a formatted message string with the <see cref="Level.Error"/> level. - /// </summary> - /// <param name="provider">An <see cref="IFormatProvider"/> that supplies culture-specific formatting information</param> - /// <param name="format">A String containing zero or more format items</param> - /// <param name="args">An Object array containing zero or more objects to format</param> - /// <remarks> - /// <para> - /// The message is formatted using the <c>String.Format</c> method. See - /// <see cref="String.Format(string, object[])"/> for details of the syntax of the format string and the behavior - /// of the formatting. - /// </para> - /// <para> - /// This method does not take an <see cref="Exception"/> object to include in the - /// log event. To pass an <see cref="Exception"/> use one of the <see cref="Error(object)"/> - /// methods instead. - /// </para> - /// </remarks> - /// <seealso cref="Error(object,Exception)"/> - /// <seealso cref="IsErrorEnabled"/> - void ErrorFormat(IFormatProvider provider, string format, params object[] args); - /// <overloads>Log a message object with the <see cref="Level.Fatal"/> level.</overloads> /// <summary> /// Log a message object with the <see cref="Level.Fatal"/> level. @@ -815,28 +727,6 @@ namespace DotNetOpenAuth.Loggers void FatalFormat(string format, object arg0, object arg1, object arg2); /// <summary> - /// Logs a formatted message string with the <see cref="Level.Fatal"/> level. - /// </summary> - /// <param name="provider">An <see cref="IFormatProvider"/> that supplies culture-specific formatting information</param> - /// <param name="format">A String containing zero or more format items</param> - /// <param name="args">An Object array containing zero or more objects to format</param> - /// <remarks> - /// <para> - /// The message is formatted using the <c>String.Format</c> method. See - /// <see cref="String.Format(string, object[])"/> for details of the syntax of the format string and the behavior - /// of the formatting. - /// </para> - /// <para> - /// This method does not take an <see cref="Exception"/> object to include in the - /// log event. To pass an <see cref="Exception"/> use one of the <see cref="Fatal(object)"/> - /// methods instead. - /// </para> - /// </remarks> - /// <seealso cref="Fatal(object,Exception)"/> - /// <seealso cref="IsFatalEnabled"/> - void FatalFormat(IFormatProvider provider, string format, params object[] args); - - /// <summary> /// Checks if this logger is enabled for the <see cref="Level.Debug"/> level. /// </summary> /// <value> @@ -904,7 +794,6 @@ namespace DotNetOpenAuth.Loggers /// </para> /// </remarks> /// <seealso cref="Debug(object)"/> - /// <seealso cref="DebugFormat(IFormatProvider, string, object[])"/> bool IsDebugEnabled { get; } /// <summary> @@ -917,7 +806,6 @@ namespace DotNetOpenAuth.Loggers /// For more information see <see cref="ILog.IsDebugEnabled"/>. /// </remarks> /// <seealso cref="Info(object)"/> - /// <seealso cref="InfoFormat(IFormatProvider, string, object[])"/> /// <seealso cref="ILog.IsDebugEnabled"/> bool IsInfoEnabled { get; } @@ -931,7 +819,6 @@ namespace DotNetOpenAuth.Loggers /// For more information see <see cref="ILog.IsDebugEnabled"/>. /// </remarks> /// <seealso cref="Warn(object)"/> - /// <seealso cref="WarnFormat(IFormatProvider, string, object[])"/> /// <seealso cref="ILog.IsDebugEnabled"/> bool IsWarnEnabled { get; } @@ -945,7 +832,6 @@ namespace DotNetOpenAuth.Loggers /// For more information see <see cref="ILog.IsDebugEnabled"/>. /// </remarks> /// <seealso cref="Error(object)"/> - /// <seealso cref="ErrorFormat(IFormatProvider, string, object[])"/> /// <seealso cref="ILog.IsDebugEnabled"/> bool IsErrorEnabled { get; } @@ -959,7 +845,6 @@ namespace DotNetOpenAuth.Loggers /// For more information see <see cref="ILog.IsDebugEnabled"/>. /// </remarks> /// <seealso cref="Fatal(object)"/> - /// <seealso cref="FatalFormat(IFormatProvider, string, object[])"/> /// <seealso cref="ILog.IsDebugEnabled"/> bool IsFatalEnabled { get; } } diff --git a/src/DotNetOpenAuth/Loggers/NoOpLogger.cs b/src/DotNetOpenAuth/Loggers/NoOpLogger.cs index 7001eab..7d1b37f 100644 --- a/src/DotNetOpenAuth/Loggers/NoOpLogger.cs +++ b/src/DotNetOpenAuth/Loggers/NoOpLogger.cs @@ -50,10 +50,6 @@ namespace DotNetOpenAuth.Loggers { return; } - public void DebugFormat(IFormatProvider provider, string format, params object[] args) { - return; - } - public void Info(object message) { return; } @@ -78,10 +74,6 @@ namespace DotNetOpenAuth.Loggers { return; } - public void InfoFormat(IFormatProvider provider, string format, params object[] args) { - return; - } - public void Warn(object message) { return; } @@ -106,10 +98,6 @@ namespace DotNetOpenAuth.Loggers { return; } - public void WarnFormat(IFormatProvider provider, string format, params object[] args) { - return; - } - public void Error(object message) { return; } @@ -134,10 +122,6 @@ namespace DotNetOpenAuth.Loggers { return; } - public void ErrorFormat(IFormatProvider provider, string format, params object[] args) { - return; - } - public void Fatal(object message) { return; } @@ -162,10 +146,6 @@ namespace DotNetOpenAuth.Loggers { return; } - public void FatalFormat(IFormatProvider provider, string format, params object[] args) { - return; - } - #endregion /// <summary> diff --git a/src/DotNetOpenAuth/Loggers/TraceLogger.cs b/src/DotNetOpenAuth/Loggers/TraceLogger.cs index 414fb5a..9b0bb0f 100644 --- a/src/DotNetOpenAuth/Loggers/TraceLogger.cs +++ b/src/DotNetOpenAuth/Loggers/TraceLogger.cs @@ -118,13 +118,6 @@ namespace DotNetOpenAuth.Loggers { /// <summary> /// See <see cref="ILog"/>. /// </summary> - public void DebugFormat(IFormatProvider provider, string format, params object[] args) { - Trace.TraceInformation(format, args); - } - - /// <summary> - /// See <see cref="ILog"/>. - /// </summary> public void Info(object message) { Trace.TraceInformation(message.ToString()); } @@ -167,13 +160,6 @@ namespace DotNetOpenAuth.Loggers { /// <summary> /// See <see cref="ILog"/>. /// </summary> - public void InfoFormat(IFormatProvider provider, string format, params object[] args) { - Trace.TraceInformation(format, args); - } - - /// <summary> - /// See <see cref="ILog"/>. - /// </summary> public void Warn(object message) { Trace.TraceWarning(message.ToString()); } @@ -216,13 +202,6 @@ namespace DotNetOpenAuth.Loggers { /// <summary> /// See <see cref="ILog"/>. /// </summary> - public void WarnFormat(IFormatProvider provider, string format, params object[] args) { - Trace.TraceWarning(format, args); - } - - /// <summary> - /// See <see cref="ILog"/>. - /// </summary> public void Error(object message) { Trace.TraceError(message.ToString()); } @@ -265,13 +244,6 @@ namespace DotNetOpenAuth.Loggers { /// <summary> /// See <see cref="ILog"/>. /// </summary> - public void ErrorFormat(IFormatProvider provider, string format, params object[] args) { - Trace.TraceError(format, args); - } - - /// <summary> - /// See <see cref="ILog"/>. - /// </summary> public void Fatal(object message) { Trace.TraceError(message.ToString()); } @@ -311,13 +283,6 @@ namespace DotNetOpenAuth.Loggers { Trace.TraceError(format, arg0, arg1, arg2); } - /// <summary> - /// See <see cref="ILog"/>. - /// </summary> - public void FatalFormat(IFormatProvider provider, string format, params object[] args) { - Trace.TraceError(format, args); - } - #endregion /// <summary> diff --git a/src/DotNetOpenAuth/OpenId/ChannelElements/SigningBindingElement.cs b/src/DotNetOpenAuth/OpenId/ChannelElements/SigningBindingElement.cs index 6b96741..6544d49 100644 --- a/src/DotNetOpenAuth/OpenId/ChannelElements/SigningBindingElement.cs +++ b/src/DotNetOpenAuth/OpenId/ChannelElements/SigningBindingElement.cs @@ -266,7 +266,6 @@ namespace DotNetOpenAuth.OpenId.ChannelElements { if (Logger.Signatures.IsDebugEnabled) { Logger.Signatures.DebugFormat( - CultureInfo.InvariantCulture, "Signing these message parts: {0}{1}{0}Base64 representation of signed data: {2}{0}Signature: {3}", Environment.NewLine, parametersToSign.ToStringDeferred(), diff --git a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs index 72f98ee..5ea04aa 100644 --- a/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs +++ b/src/DotNetOpenAuth/OpenId/Extensions/AttributeExchange/FetchRequest.cs @@ -252,14 +252,14 @@ namespace DotNetOpenAuth.OpenId.Extensions.AttributeExchange { if (this.OptionalAliases != null) { if (this.OptionalAliases.IndexOfAny(IllegalAliasListCharacters) >= 0) { - Logger.OpenId.ErrorFormat("Illegal characters found in Attribute Exchange if_available alias list. Ignoring value."); + Logger.OpenId.Error("Illegal characters found in Attribute Exchange if_available alias list. Ignoring value."); this.OptionalAliases = null; } } if (this.RequiredAliases != null) { if (this.RequiredAliases.IndexOfAny(IllegalAliasListCharacters) >= 0) { - Logger.OpenId.ErrorFormat("Illegal characters found in Attribute Exchange required alias list. Ignoring value."); + Logger.OpenId.Error("Illegal characters found in Attribute Exchange required alias list. Ignoring value."); this.RequiredAliases = null; } } |