November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
The roleToSynchronize attribute is only valid if you have EPiServer Mail or Community installed I believe.
Sorry about that. I posted the wrong configurations
MultiplexingRoleProvider
<add name="MultiplexingRoleProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingRoleProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalRoleProvider" provider2="ActiveDirectoryInternalRoleProvider" providerMap1="ActiveDirectoryExternalMembershipProvider" providerMap2="ActiveDirectoryInternalMembershipProvider" />
MultiplexingMembershipProvider
<add name="MultiplexingMembershipProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingMembershipProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalMembershipProvider" provider2="ActiveDirectoryInternalMembershipProvider"/>
I'd recommend debugging and stepping through W2P.Xavier.Core.Infrastructure.Security.MultiplexingMembershipProvider if you have the possibility.
Add some logging to see what's going on if you can't setup debugging in a valid environment.
Yes I have done that but I don't see where the groups are being pulled from. I've been working on this for weeks and still haven't found a solution. I'm looking for someone to point me in the right direction, if possible.
How have you configured the individual providers? If you use them stand-alone, do they work then?
I'm using multiplexing to several different directories, and I have no problems there. One thing to know, depending on how your directory is structured, is that the membership provider may need access to the roles branch, if they are configured in a very granular manner.
Here's my current configuration:
<membership defaultProvider="MultiplexingMembershipProvider" userIsOnlineTimeWindow="10">
<providers>
<clear />
<add name="MultiplexingMembershipProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingMembershipProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalMembershipProvider" provider2="ActiveDirectoryInternalMembershipProvider"/>
<add name="ActiveDirectoryInternalMembershipProvider"
type="W2P.Xavier.Core.Infrastructure.Security.CustomADProvider"
connectionStringName="ActiveDirectoryInternalConnection"
connectionUsername="[username]"
connectionPassword="[password]"
connectionProtection="None"
enableSearchMethods="true"
attributeMapUsername="sAMAccountName" />
<add name="ActiveDirectoryExternalMembershipProvider"
type="W2P.Xavier.Core.Infrastructure.Security.CustomADProvider"
connectionStringName="ActiveDirectoryExternalConnection"
connectionUsername="[username]"
connectionPassword="[password]"
connectionProtection="None"
enableSearchMethods="true"
attributeMapUsername="sAMAccountName" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="MultiplexingRoleProvider" cacheRolesInCookie="true">
<providers>
<clear />
<add name="MultiplexingRoleProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingRoleProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalRoleProvider" provider2="ActiveDirectoryInternalRoleProvider" providerMap1="ActiveDirectoryExternalMembershipProvider" providerMap2="ActiveDirectoryInternalMembershipProvider" />
<add name="ActiveDirectoryInternalRoleProvider"
type="EPiServer.Security.ActiveDirectoryRoleProvider, EPiServer"
connectionStringName="ActiveDirectoryInternalConnection"
connectionUsername="[username]"
connectionPassword="[password]"
attributeMapUsername="sAMAccountName" />
<add name="ActiveDirectoryExternalRoleProvider"
type="EPiServer.Security.ActiveDirectoryRoleProvider, EPiServer"
connectionStringName="ActiveDirectoryExternalConnection"
connectionUsername="[username]"
connectionPassword="[password]"
attributeMapUsername="sAMAccountName" />
</providers>
</roleManager>
And yes, individually they work fine.
If they work individually, then my money is on your multiplexing implementation, have you tried stepping through what happens when a call is made to GetAllRoles for instance?
If I use EPiServer.Security.MultiplexingRoleProvider, I get the same results. And yes I have stepped through the GetAllRoles method but I don't see where the roles are in the object.
What I've don is iterating over all the configured providers, and getting the roles from each and every one of them, and finally returning the distinct collection of roles in the configured providers.
I don't know how well this would translate to your requirements, but it works for me.
That's excatly what I've done but I now see that the roles are the same from both directories which should not be. It looks like it may be something with the implementation code after all. Thank you guys for all your help.
I've set up multiplexing for both internal and external ADs. I'm able to sign in as it does authenticate against both directories but it only pulls the groups from first AD provider and not the second. I've seen post http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2010/12/Multiplexing-providers/ but that did not seem to fix my problem.
This is my current configuration:
MultiplexingRoleProvider
<add name="MultiplexingRoleProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingRoleProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalRoleProvider" provider2="ActiveDirectoryInternalRoleProvider" provider3="CMSRoleProvider" providerMap1="ActiveDirectoryExternalMembershipProvider" providerMap2="ActiveDirectoryInternalMembershipProvider" providerMap3="CMSMembershipProvider" />
MultiplexingRoleProvider
<add name="MultiplexingRoleProvider" type="W2P.Xavier.Core.Infrastructure.Security.MultiplexingRoleProvider, W2P.Xavier.Core" provider1="ActiveDirectoryExternalRoleProvider" provider2="ActiveDirectoryInternalRoleProvider" provider3="CMSRoleProvider" providerMap1="ActiveDirectoryExternalMembershipProvider" providerMap2="ActiveDirectoryInternalMembershipProvider" providerMap3="CMSMembershipProvider" />
There was also something in this post (http://blog.tomstenius.com/2009_04_01_archive.html) about using the roleToSynchronizeX attribute. I see it in the default web.config of a different commented out multiplexing tag. It doesn't look like it will solve my problem but what's the purpose of that attribute?