2010-02-12 9 views
5

का उपयोग कर SharePoint 2010 के साथ एक ही एडी के विरुद्ध प्रमाणीकरण करते समय मैं वर्तमान में SharePoint 2010 प्रोजेक्ट पर काम कर रहा हूं जहां वातावरण दावा आधारित प्रमाणीकरण का उपयोग कर SharePoint वेब एप्लिकेशन के साथ सेटअप किया गया है। वेब ऐप पोर्ट 8081 पर ऑथ के लिए विंडोज प्रमाणीकरण का उपयोग करके बनाया गया है, और फॉर्म आधारित प्रमाणीकरण का उपयोग कर पोर्ट 80 तक बढ़ाया गया है।Windows Auth और Forms Auth उपयोगकर्ताओं के बीच अंतर करें जब दावा आधारित प्रमाणीकरण

प्रपत्र प्रमाणीकरण प्रदाता अनुप्रयोग की web.config में निम्न प्रविष्टियों का उपयोग करते हुए, विंडोज एथ आधारित साइट के समान सक्रिय निर्देशिका का उपयोग करने के लिए सेटअप है (प्रविष्टियां केंद्रीय प्रशासन और सुरक्षा टोकन सेवा web.config फ़ाइलों में हैं अच्छी तरह से):

<membership defaultProvider="i"> 
    <providers> 
    <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> 
    <add name="FBA_AD_MP" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADFBAConnectionString" enableSearchMethods="true" attributeMapUsername="userPrincipalName" /> 
    </providers> 
</membership> 

इस सेटअप का उपयोग उम्मीद के अनुसार काम करता है; पोर्ट 8081 पर एप्लिकेशन पर जाने वाले उपयोगकर्ता मानक विंडोज़ ऑथ चुनौती के साथ प्रस्तुत किए जाते हैं, पोर्ट 80 पर उन लोगों को कस्टम लॉगिन फॉर्म पर निर्देशित किया जाता है। बॉक्स प्रशासन टूल के बाहर साइट पर उपयोगकर्ताओं को जोड़ते समय, किसी विशेष उपयोगकर्ता की खोज जैसे कि [email protected] दो हिट लौटाएगा, विंडोज़ ऑथ प्रदाता से एक, फॉर्म ऑथ प्रदाता से एक। इन दोनों उपयोगकर्ताओं को किसी साइट पर जोड़ना बताता है कि SharePoint खाते में नाम को पहचानकर्ता के साथ सामने रखता है। विंडोज़ ऑथ यूजर का अनुवाद i: 0 # .w | mydomain \ johnsmith में किया गया है, एफबीए उपयोगकर्ता का अनुवाद i: 0 # .f | fba_ad_mp | [email protected] पर किया गया है।

यहां समस्याएं आती हैं। हम एक कस्टम निर्मित टूल का उपयोग करके थोक में साइट संग्रह बना रहे हैं जो इनपुट की स्प्रेडशीट पार्स करता है, साइट संग्रह बनाता है, और उपयुक्त उपयोगकर्ताओं को निम्न विधि का उपयोग करके नव निर्मित साइट पर जोड़ता है:

private static void AddUser(SPSite site, String userName, String spGroupName) 
    { 
     try 
     { 
      SPUser spUser = site.RootWeb.EnsureUser(userName); 

      if (spUser != null) 
      { 
       site.RootWeb.Groups[spGroupName].AddUser(spUser); 
      } 
     } 
     catch(Exception ex) 
     { 
      SharePointManager.Counter.Warnings++; 
      SharePointManager.Logger.Warn(String.Format("\t\tUnable to add user {0} to group {1} at site {2}: {3}", userName, spGroupName, site.RootWeb.Url, ex.ToString())); 
     } 
    } 

उपयोगकर्ता नाम पैरामीटर पास किया गया है, उदाहरण के बाद, [email protected]। हालांकि, साइट पर जोड़ा गया उपयोगकर्ता हमेशा विंडोज़ आधारित उपयोगकर्ता है, i: 0 # .w | mydomain \ johnsmith।

मैं यह सुनिश्चित कैसे करूं कि EnsureUser को कॉल करते समय मतदान के लिए कौन सा प्रमाणीकरण प्रदाता है, इसलिए मैं गारंटी दे सकता हूं कि सही उपयोगकर्ता साइट पर जोड़ा गया है?

उत्तर

1

समस्या यह है कि दोनों सदस्यता प्रदाता ईमेल पते को पहचानते हैं, और पहला परिणाम (एडी) उपयोग किया जाता है। FBA_AD_MP आज़माएं: [email protected] - वह सिंटैक्स मानक उपयोगकर्ता नाम नियंत्रण (खोज संवाद के बजाय चेक नाम का उपयोग करके) में काम करता है, और मेरा मानना ​​है कि EnsureUser उसी तरह काम करता है।

+0

मैं लोगों पिकर (खोज नहीं) से समान व्यवहार देख का उपयोग कर एक SPClaim को SPUser बदलने की आवश्यकता है, लेकिन यह सुनिश्चित उपयोगकर्ता विधि है कि प्रारूप की तरह नहीं है। हालांकि, अगर मैं उपयोगकर्ता नाम "i: 0 # .f | fba_ad_mp |" के साथ प्रस्तुत करता हूं तो यह ठीक काम करता है। अभी के लिए मैं इसे एक कॉन्फ़िगरेशन आइटम बनाना अच्छा कर रहा हूं ... लेकिन मैं उत्सुक हूं कि ऑब्जेक्ट मॉडल में मैं अधिक जटिल परिदृश्यों के लिए इन उपसर्गों को विश्वसनीय रूप से ढूंढ सकता हूं। –

0

संक्षेप में आप SPClaimProviderManager

+1

आपका लिंक टूटा हुआ है – sra

+0

किस अंत तक? SPGroup.AddUser() का कोई अधिभार नहीं है जो SPClaim स्वीकार करता है, और न ही SPClaim में किसी भी प्रदाता के लिए विशिष्ट SPUser का संदर्भ होता है। –

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