Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IHttpHeaderInspectingAuthenticatorFactory<T>
- where T: HttpHeaderInspectingAuthenticatorConfigurationElement
- {
- IHttpHeaderInspectingAuthenticator<T> Construct(T config);
- }
- public class BasicAuthenticationInspectingAuthenticatorFactory :
- IHttpHeaderInspectingAuthenticator<BasicAuthenticationHeaderInspectorConfigurationElement>
- {
- public IHttpHeaderInspectingAuthenticator<BasicAuthenticationHeaderInspectorConfigurationElement> Construct(BasicAuthenticationHeaderInspectorConfigurationElement config)
- {
- return new BasicAuthenticationInspectingAuthenticator(config);
- }
- }
- public class BasicAuthenticationInspectingAuthenticator : HttpHeaderInspectingAuthenticatorBase<BasicAuthenticationHeaderInspectorConfigurationElement>
- {
- internal BasicAuthenticationInspectingAuthenticator(BasicAuthenticationHeaderInspectorConfigurationElement config)
- : base(config) {}
- //snip -- IHttpHeaderInspectingAuthenticator<T> and IHttpHeaderInspectingAuthenticator implementation
- }
- public class BasicAuthenticationHeaderInspectorConfigurationElement : HttpHeaderInspectingAuthenticatorConfigurationElement
- {
- //extra properties
- }
- public class HttpHeaderInspectingAuthenticatorConfigurationElement : ConfigurationElement
- {
- protected override void PostDeserialize()
- {
- base.PostDeserialize();
- //simple verification of info supplied in config
- var t = Type.GetType(Factory);
- if (null == t)
- throw new ConfigurationErrorsException(String.Format("The factory type specified [{0}] cannot be found - check configuration settings", Factory ?? ""));
- if (!typeof(IHttpHeaderInspectingAuthenticatorFactory<>).IsGenericInterfaceAssignableFrom(t))
- throw new ConfigurationErrorsException(String.Format("The factory type specified [{0}] must derive from {1} - check configuration settings", Factory ?? "", typeof(IHttpHeaderInspectingAuthenticatorFactory<>).Name));
- var c = t.GetConstructor(Type.EmptyTypes);
- if (null == c)
- throw new ConfigurationErrorsException(String.Format("The factory type specified [{0}] must have a parameterless constructor - check configuration settings", Factory ?? ""));
- }
- [ConfigurationProperty("factory", IsRequired = true)]
- public string Factory
- {
- get { return (string)this["factory"]; }
- set { this["factory"] = value; }
- }
- //this allows us to use types derived from HttpHeaderInspectingAuthenticatorConfigurationElement
- protected override bool OnDeserializeUnrecognizedAttribute(string name, string value)
- {
- ConfigurationProperty property = new ConfigurationProperty(name, typeof(string), value);
- Properties.Add(property);
- base[property] = value;
- return true;
- }
- public IHttpHeaderInspectingAuthenticator GetInspector()
- {
- dynamic factoryInstance = Activator.CreateInstance(Type.GetType(Factory));
- return factoryInstance.Construct(this);
- }
- }
- Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: The best overloaded method match for 'Redcated.Authentication.BasicAuthenticationInspectingAuthenticatorFactory.Construct(Redcated.Authentication.Configuration.BasicAuthenticationHeaderInspectorConfigurationElement)' has some invalid arguments
- at CallSite.Target(Closure , CallSite , Object , HttpHeaderInspectingAuthenticatorConfigurationElement )
- at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
- at Redcated.Authentication.Configuration.HttpHeaderInspectingAuthenticatorConfigurationElement.GetInspector() in D:UsersebrownDocumentsVisual Studio 2010ProjectsUtilitysourceAuthentication LibraryConfigurationHttpHeaderInspectingAuthenticatorConfigurationElement.cs:line 79
- at Redcated.Authentication.Configuration.HttpHeaderInspectingAuthenticatorConfigurationElementCollection.<GetInspectors>b__0(HttpHeaderInspectingAuthenticatorConfigurationElement i) in D:UsersebrownDocumentsVisual Studio 2010ProjectsUtilitysourceAuthentication LibraryConfigurationHttpHeaderInspectingAuthenticatorConfigurationElementCollection.cs:line 78
- at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
- at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
- at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
- at Redcated.Authentication.HttpHeaderInspectingAuthenticationModule.AuthenticateRequest(Object sender, EventArgs e) in D:UsersebrownDocumentsVisual Studio 2010ProjectsUtilitysourceAuthentication LibraryHttpHeaderInspectingAuthenticationModule.cs:line 49
- at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
- at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
- public interface IHttpHeaderInspectingAuthenticatorFactory
- {
- IHttpHeaderInspectingAuthenticator Construct(HttpHeaderInspectingAuthenticatorConfigurationElement config);
- }
- public interface IHttpHeaderInspectingAuthenticatorFactory<T> : IHttpHeaderInspectingAuthenticatorFactory
- where T: HttpHeaderInspectingAuthenticatorConfigurationElement
- {
- IHttpHeaderInspectingAuthenticator<T> Construct(T config);
- }
- public abstract class HttpHeaderInspectingAuthenticatorFactoryBase<T> : IHttpHeaderInspectingAuthenticatorFactory<T>
- where T : HttpHeaderInspectingAuthenticatorConfigurationElement
- {
- protected static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
- public abstract IHttpHeaderInspectingAuthenticator<T> Construct(T config);
- public IHttpHeaderInspectingAuthenticator Construct(HttpHeaderInspectingAuthenticatorConfigurationElement config)
- {
- return Construct((T)config);
- }
- }
- public class BasicAuthenticationInspectingAuthenticatorFactory :
- HttpHeaderInspectingAuthenticatorFactoryBase<BasicAuthenticationHeaderInspectorConfigurationElement>
- {
- public override IHttpHeaderInspectingAuthenticator<BasicAuthenticationHeaderInspectorConfigurationElement> Construct(BasicAuthenticationHeaderInspectorConfigurationElement config)
- {
- return new BasicAuthenticationInspectingAuthenticator(config);
- }
- }
- public IHttpHeaderInspectingAuthenticator GetInspector()
- {
- var factoryInstance = (IHttpHeaderInspectingAuthenticatorFactory)Activator.CreateInstance(Type.GetType(Factory));
- return factoryInstance.Construct(this);
- }
- dynamic factoryInstance = Activator.CreateInstance(Type.GetType(Factory));
- dynamic parameter = this;
- return factoryInstance.Construct(parameter);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement