7

हमारे पास साइटकोर के एक उदाहरण से चलने वाली कई साइटें हैं। साइटों में से एक को उपयोगकर्ताओं को & भूमिकाओं को बाहरी बैक एंड सिस्टम के माध्यम से प्रबंधित करने की आवश्यकता होती है और इस तरह, हमने प्रत्येक साइट के डोमेन के साथ कस्टम सदस्यता & भूमिका प्रदाताओं को कॉन्फ़िगर किया है। हालांकि, किसी कारण से भूमिका प्रदाता पर स्विचर का सम्मान नहीं किया जा रहा है। यदि मैं साइटसम उपयोगकर्ता के रूप में सीएमएस में लॉग इन करता हूं, तो यह अभी भी मेरे कस्टम रोल प्रदाता को इस उपयोगकर्ता के लिए भूमिका निभाने और भूमिका निभाने के लिए कहता है, भले ही भूमिका प्रदाता किसी भिन्न डोमेन के विरुद्ध कॉन्फ़िगर किया जा रहा हो? जब वास्तविक उपयोगकर्ताओं साइट में लॉग इनसाइटकोर - रोल प्रदाता के लिए प्रदाता स्विचिंग डोमेन का सम्मान नहीं

भूमिका प्रदाता ठीक काम कर रहा है, लेकिन यह मारा जा रहा नहीं होना चाहिए जब सीएमएस उपयोगकर्ताओं संपादन पृष्ठों आदि

हमारे Web.config में कॉन्फ़िग रहे हैं:

<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> 

प्लस sitecore config में हमारे समझौता:

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

उत्तर

8

यह Sitecore के एक मोड़/बग प्रतीत होता है। जब आप SwitchingRoleProvider का उपयोग करते हैं तो डोमेन प्रॉपर्टी को अनदेखा किया जाता है और लागू प्रदाता को सभी डोमेन पर कॉल किया जाता है।

2 अप्रलेखित गुण यह है कि जब इस भूमिका प्रदाता का उपयोग करके जोड़ी हैं:

ignoredUserDomains - डोमेन जो प्रदाता के लिए लागू नहीं हो जाएगा की अल्पविराम पृथक सूची।

और

allowedUserDomains - अल्पविराम डोमेन जो प्रदाता केवल को लागू किया जाएगा की सूची अलग कर दिया।

आप केवल इनमें से एक भूमिका प्रदाता के लिए निर्दिष्ट कर सकते हैं, और दोनों प्रदान करना अपवाद फेंक देगा।

उदाहरण में आप का इस्तेमाल किया है, निम्नलिखित आपकी समस्या का समाधान करना चाहिए:

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

(source)

संबंधित मुद्दे