OK, I think I'm beginning to understand what you're going for better, in which case I suppose the extra provider factory interface may make sense. At least in some cases.
I don't think DNOA needs access to the IAuthorizationProvider interface. For example, its Authorize method isn't one that DNOA will ever call (that's up to the hosting site to call when the user approves the authorization). The other two
are interesting from DNOA's perspective, and there is already an interface defined to capture that behavior.
Eventually, perhaps when DNOA takes a hard dependency on .NET 4.0, we may use MEF, at least internally, to discover services. It wouldn't be strictly required that the host application use MEF, but if it did then DNOA might fit well into that model. I'd be interested in hearing your thoughts on this too.
Until that time, DNOA currently has properties/constructors that take interfaces that DNOA will need to perform its work, including the interfaces that provide IAuthorizationProvider-like behavior, but without the Authorize method. If we put the interfaces you're proposing, and some common implementations of those interfaces, into the ApplicationBlock, then I think the web apps can benefit for the reasons you've given, and use those classes to also supply the interfaces that DNOA does know about.
What do you think?
--
Andrew Arnott
"I [may] not agree with what you have to say, but I'll defend to the death your right to say it." - S. G. Tallentyre
You received this message because you are subscribed to the Google Groups "DotNetOpenAuth" group.