2015-06-24 11 views
6

के साथ कनेक्ट करें मैं एक सी # अनुप्रयोग विकसित कर रहा हूं जिसका उपयोग डायनेमिक्स सीआरएम ऑनलाइन से डेटा पुनर्प्राप्त करने के लिए किया जाता है। उपयोगकर्ता नाम और डायनेमिक्स सीआरएम के पासवर्ड को सत्यापित करने के लिए मैं WhoAmIRequest का उपयोग कर रहा हूं। यह नीचे परिदृश्य होने तक ठीक काम करता है।सी # में डायनेमिक्स सीआरएम एसडीके अमान्य पासवर्ड

1) डायनामिक्स सीआरएम को मान्य यूआरएल, उपयोगकर्ता नाम और पासवर्ड से कनेक्ट करें।

2) संगठन सेवा ऑब्जेक्ट का निपटान करें।

3) डायनामिक्स सीआरएम को मान्य यूआरएल, उपयोगकर्ता नाम और अमान्य पासवर्ड से दोबारा कनेक्ट करें।

इस परिदृश्य में भी WhoAmIRequest को सफलतापूर्वक निष्पादित किया गया। लेकिन यह असफल होना चाहिए।

नीचे कोड मैं का उपयोग कर रहा है:

private void button6_Click(object sender, EventArgs e) 
    { 
     CrmConnection connection; 
     string url = "Url=https://mytest.crm.dynamics.com ;[email protected]osoft.com; Password=goodpassword;"; 
     connection = CrmConnection.Parse(url); 
     OrganizationService orgService = new OrganizationService(connection); 
     Guid userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId; 
     if (userid == null) 
      MessageBox.Show("Login Failed"); 
     else 
      MessageBox.Show("Login Success"); 
     orgService.Dispose(); 

     url = "Url=https://mytest.crm.dynamics.com ;[email protected]; Password=badpassword;"; 
     connection = CrmConnection.Parse(url); 
     orgService = new OrganizationService(connection); 
     userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId; 
     if (userid == null) 
      MessageBox.Show("Login Failed"); 
     else 
      MessageBox.Show("Login Success"); 
     orgService.Dispose(); 

     url = "Url=https://mytest.crm.dynamics.com ;[email protected]; Password=goodpassowrd;"; 
     connection = CrmConnection.Parse(url); 
     orgService = new OrganizationService(connection); 
     userid = ((WhoAmIResponse)orgService.Execute(new WhoAmIRequest())).UserId; 
     if (userid == null) 
      MessageBox.Show("Login Failed"); 
     else 
      MessageBox.Show("Login Success"); 
     orgService.Dispose(); 
    } 

ऊपर कोड के उत्पादन में 3 संदेश बॉक्स से पता चलता

लॉग इन सफलता

लॉग इन सफलता

लॉग इन सफलता

के रूप में

लेकिन इसे

के रूप में दिखाना चाहिए

लॉग इन सफलता

प्रवेश विफल

लॉग इन सफलता

मैं भी जवाब की कोशिश की है Need to validate CRM credentials प्रश्न में Nicknow द्वारा सुझाव है लेकिन कुछ भी

में मदद करता है किसी भी मदद अत्यधिक सराहना की जाएगी।

धन्यवाद और सादर वेंकटेशन

+0

जब मैं यह करने के लिए प्रयास करते हैं, यह मेरे क्रेडेंशियल की मांग, आपको एक मान्य उपयोगकर्ता मिलता है उस प्रतिक्रिया में? – Sxntk

+0

प्रतिक्रिया Sxntk के लिए धन्यवाद, यह वैध प्रमाण पत्र नहीं है, मैंने उदाहरण के उद्देश्य से कुछ अमान्य में संशोधित किया है इसलिए मैं जो प्रमाण पत्र उपयोग कर रहा हूं वह साझा करने के लिए प्रतिबंधित है। आप परीक्षण उद्देश्यों के लिए गतिशीलता सीआरएम में एक परीक्षण खाता बना सकते हैं। यदि आप प्रमाण पत्र चाहते हैं तो मुझे बताएं। – user3270512

+0

मैं इसे अपने सीआरएम पर आधार पर कोशिश कर रहा हूं, इसलिए जब मैं सेवा का निपटान करता हूं और गलत पासवर्ड सक्रिय निर्देशिका के साथ प्रमाणित करने का प्रयास करता हूं, तो यदि मैं सही प्रमाण-पत्र प्रदान नहीं करता तो यह विफल हो जाता है। – Sxntk

उत्तर

4

समस्या यहाँ जाँच में है:

if (userid == null)

UserId एक GUID है, Guid एक struct, एक struct एक मूल्य के प्रकार, और एक मूल्य है प्रकार कभी भी null नहीं होगा, ताकि जांच हमेशा झूठी हो।

अधिक जानकारी के लिए यहाँ देखें Guid == null should not be allowed by the compiler

मैं बजाय निम्नलिखित जांच उपयोग करने का सुझाव होगा:

if (userid == Guid.Empty)

+0

सुझाव जेम्स के लिए धन्यवाद, मैंने आपके सुझाव की कोशिश की है और एक ही परिणाम मिला है। यह केवल निम्नलिखित परिदृश्य में अमान्य पासवर्ड स्वीकार करता है। 1) डायनामिक्स सीआरएम को वैध यूआरएल, उपयोगकर्ता नाम और पासवर्ड से कनेक्ट करें। 2) संगठन सेवा वस्तु का निपटान करें। 3) डायनामिक्स सीआरएम को वैध यूआरएल, उपयोगकर्ता नाम और अमान्य पासवर्ड से दोबारा कनेक्ट करें। जब हम बहुत मुट्ठी प्रयास पर अमान्य पासवर्ड से लॉगिन करने का प्रयास करते हैं तो यह प्रमाणीकरण विफलता संदेश को गंभीरता से दिखाता है। – user3270512

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