2010-03-26 9 views
5

मैं एक परीक्षण वेबसाइट पर ओपनआईडी समर्थन जोड़ने के लिए DotNetOpenId लाइब्रेरी का उपयोग करने का प्रयास कर रहा हूं। कुछ कारणों से यह फ़ायरफ़ॉक्स पर चलते समय मुझे निम्न त्रुटि दे रहा है। ध्यान रखें कि मैं लोकलहोस्ट का उपयोग कर रहा हूं क्योंकि मैं इसे अपनी स्थानीय मशीन पर परीक्षण कर रहा हूं।कोई ओपनआईडी एंडपॉइंट नहीं मिला

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using DotNetOpenAuth.OpenId.Extensions.ProviderAuthenticationPolicy; 
using DotNetOpenAuth.OpenId.Extensions.SimpleRegistration; 
using DotNetOpenAuth.OpenId.RelyingParty; 

namespace TableSorterDemo 
{ 
    public partial class Login : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      var openid = new OpenIdRelyingParty(); 
      if (openid.GetResponse() != null) 
      { 
       switch (openid.GetResponse().Status) 
       { 
        case AuthenticationStatus.Authenticated: 
         var fetch = openid.GetResponse().GetExtension(typeof(ClaimsResponse)) as ClaimsResponse; 
         var nick = fetch.Nickname; 
         var email = fetch.Email; 

         break; 
       } 
      } 
     } 

     protected void OpenIdLogin1_LoggedIn(object sender, OpenIdEventArgs e) 
     { 
      var openid = new OpenIdRelyingParty(); 
      if(openid.GetResponse() != null) 
      { 
       switch(openid.GetResponse().Status) 
       { 
        case AuthenticationStatus.Authenticated: 
         var fetch = openid.GetResponse().GetExtension(typeof (ClaimsResponse)) as ClaimsResponse; 
         var nick = fetch.Nickname; 
         var email = fetch.Email; 

         break; 
       } 
      } 


     } 

     protected void OpenIdLogin1_LoggingIn(object sender, OpenIdEventArgs e) 
     { 
      var openid = new OpenIdRelyingParty(); 
      var req = openid.CreateRequest(OpenIdLogin1.Text); 
      var fetch = new ClaimsRequest(); 
      fetch.Email = DemandLevel.Require; 
      fetch.Nickname = DemandLevel.Require; 
      req.AddExtension(fetch); 
      req.RedirectToProvider(); 
      return; 
     } 


    } 
} 

इसके अलावा, अगर मैं क्रोम में एक ही पृष्ठ चलाने तो मैं निम्नलिखित मिल:

लॉगइन असफल: यह संदेश पहले से ही संसाधित किया गया है। यह प्रगति पर एक रीप्ले हमले का संकेत दे सकता है।

+0

आपके प्रश्न में "फ़ायरफ़िक्स पर चलते समय मुझे निम्न त्रुटि दे रही है।" Firefix? और आपने जो त्रुटि प्राप्त की है उसे छोड़ दिया है। –

उत्तर

5

रीप्ले हमले का पता लगाने के परिणाम आपको GetResponse() पर दो बार कॉल करते हैं। आपको ऐसा नहीं करना चाहिए। इसके बजाय, स्थानीय चर में GetResponse() पर केवल एक कॉल का परिणाम असाइन करें, और उसके बाद इसे शून्य के विरुद्ध जांचें और अन्यथा इसका उपयोग करें।

आपके बारे में "कोई ओपनआईडी एंडपॉइंट नहीं मिला" त्रुटि, क्या आप स्थानीयहोस्ट ओपनआईडी के साथ-साथ याहू जैसे बाहरी पार्टी द्वारा होस्ट किए गए ओपनआईडी के खिलाफ परीक्षण कर रहे हैं?

+0

मैं locahost ओपनआईडी के खिलाफ परीक्षण कर रहा हूँ। – azamsharp

+4

फिर सुनिश्चित करें कि आपकी आरपी की web.config फ़ाइल लोकलहोस्ट ओपनआईड्स के लिए अनुमति देती है, जैसा कि इस web.config फ़ाइल में दिखाया गया है: http://github.com/AArnott/dotnetopenid/blob/master/samples/OpenIdRelyingPartyMvc/Web.config ' टैग जोड़ें। –

4

मेरे मामले में जब मैं इंटरनेट से कनेक्ट करने के लिए प्रॉक्सी का उपयोग कर रहा था, तो मैंने web.config पर निम्न कॉन्फ़िगरेशन जोड़कर हल किया।

<system.net> 
<defaultProxy useDefaultCredentials="true"> 
    <proxy autoDetect="True" usesystemdefault="True" /> 
</defaultProxy> 
</system.net> 
0

यह देखते हुए कि 'नहीं OpenID एंडपॉइंट पाया' त्रुटि संदेश कि समस्या क्या है की एक सच्ची वर्णन नहीं किया जा सकता इसके लायक।

अपने आप के लिए यह था क्योंकि मैं अपने जीमेल ईमेल पते का उपयोग किया गया था, लेकिन वास्तव में आप एक OpenId account बनाने के लिए आप तो प्रारूप .myopenid.com/

में एक आईडी मिल जाएगा की जरूरत दर्ज रूप में पहचान है और यह है कि सही ढंग से काम करना चाहिए।

0

अपने क्लाइंट ऐप में web.config की जांच करें। एक अनुभाग

    <!-- Uncomment to enable communication with localhost (should generally not activate in production!) --> 
       <!--<add name="localhost" />--> 

So as it says - uncomment to 
<add name="localhost" />