2016-05-10 13 views
7

Sitecore bir örneğini çalıştıran birden çok sitemiz var. Sitelerden biri, harici bir arka uç sistemi üzerinden yönetilecek olan kullanıcıların & rollerini gerektirir ve bu nedenle, her bir site için etki alanlarıyla birlikte özel üyelik & rol sağlayıcılarını yapılandırdık. Bununla birlikte, bazı sebeplerden dolayı rol sağlayıcısının anahtarına saygı duyulmuyor gibi görünmektedir. CMS'ye sitecore kullanıcısı olarak giriş yaparsam, rol sağlayıcısı farklı bir alana karşı yapılandırılmış olmasına rağmen, bu kullanıcı için rol almak için özel rol sağlayıcımı çağırır. CMS Kullanıcılar sayfa vb bizim Web.config,Sitecore - Rol Sağlayıcı için Anahtarlama Sağlayıcısı etki alanına saygı göstermiyor

Yapılandırma düzenlerken gerçek kullanıcıların siteye giriş yaptığınızda

rol sağlayıcısı

iyi çalışıyor, ancak vurulduktan edilmemelidir:

<roleManager defaultProvider="sitecore" enabled="true" cookieRequireSSL="false" createPersistentCookie="false" cookieSlidingExpiration="true" cacheRolesInCookie="false"> 
    <providers> 
    <clear /> 
    <add name="sitecore" type="Sitecore.Security.SitecoreRoleProvider, Sitecore.Kernel" realProviderName="switcher" raiseEvents="true" /> 
    <add name="sql" type="System.Web.Security.SqlRoleProvider" connectionStringName="core" applicationName="sitecore" /> 
    <add name="MyProvider" type="MyApp.Web.Infrastructure.Security.RoleProviders.MyProvider, MyApp.Web" applicationName="sitecore" /> 
    <add name="switcher" type="Sitecore.Security.SwitchingRoleProvider, Sitecore.Kernel" applicationName="sitecore" mappings="switchingProviders/roleManager" /> 
    </providers> 
</roleManager> 

Artı Sitecore config bizim yamalı:

<switchingProviders> 
    <roleManager> 
    <provider providerName="MyProvider" storeFullNames="false" wildcard="%" domains="mydomain" patch:after="provider[@providerName='sql']"/> 
    </roleManager> 
</switchingProviders> 

cevap

8

Bu Sitecore bir cilvesi/hata gibi görünüyor. SwitchingRoleProvider kullandığınızda, etki alanı özelliği yok sayılır ve uygulanan sağlayıcı tüm etki alanları arasında çağrılır.

bu Rol Sağlayıcı kullanırken eklenir 2 belgesiz özellikleri vardır:

ignoredUserDomains - sağlayıcı uygulanmayacak alan adları virgülle ayrılmış listesi.

ve

allowedUserDomains - virgül sağlayıcı sadece uygulanacak etki ayrılmış listesi.

Bunlardan birini yalnızca rol sağlayıcısı için belirtebilir ve her ikisinin de bir istisna atamasını sağlayabilirsiniz. Örnekte

Eğer şu sorunu çözmelidir, kullanmış

:

<switchingProviders> 
    <roleManager> 
    <provider providerName="MyProvider" storeFullNames="false" wildcard="%" allowedUserDomains="mydomain" patch:after="provider[@providerName='sql']"/> 
    </roleManager> 
</switchingProviders> 

(source)

İlgili konular