我的WCF项目中有几个Web服务需要自定义ServiceAuthorizationManager
才能够验证OAuth调用。为此,我创建了一个自定义WebServiceHostFactory
。我正在连接Ninject,并且很难将其转换为NinjectWebServiceHostFactory
。这里是我的代码:Ninject - 创建自定义NinjectWebServiceHost
public class MyServiceHostFactory : WebServiceHostFactory
{
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
return new MyServiceHost(serviceType, baseAddresses);
}
}
public class MyServiceHost: WebServiceHost
{
public MyServiceHost(Type serviceType, Uri[] baseAddresses)
: base(serviceType, baseAddresses)
{
Authorization.ServiceAuthorizationManager = new OAuthAuthorizationManager();
}
}
当我切换WebServiceHost
到NinjectWebServiceHost
,它要求一个IServiceBehavior
实现。我在我的网络服务上有ServiceBehavior
属性,我的web.config
中有一个ServiceBehavior
部分。
有没有人看到这个,并能够成功实现这样的事情?有没有更好的方法来为我的2个Web服务进行连接?我不希望这会影响我的所有Web服务。