2010-03-26 9 views
5

Bir web sitesinde OpenID desteği eklemek için DotNetOpenId kütüphanesini kullanmaya çalışıyorum. Bazı nedenlerle Firefox üzerinde çalışırken bana aşağıdaki hatayı veriyor. Yerel makinemde test ettiğim gibi localhost kullanıyorum. Chrome'da aynı sayfayı çalıştırırsanızHayır OpenID son noktası bulundu

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


    } 
} 

Ayrıca, o zaman şu olsun:

Giriş başarısız: Bu ileti işleme alındı. Bu devam eden bir tekrar saldırıya işaret edebilir.

+0

içeren Sorunuz "firefix çalışırken bana aşağıdaki hata veriyor." Firefix? Ve aldığın hatayı dışarıda bıraktın. –

cevap

5

Yeniden oynatma algılaması sonucu, iki kez GetResponse() numaralı telefonu aramanız gerekir. Bunu yapmamalısın. Bunun yerine, yerel bir değişkene yalnızca bir aramanın sonucunu GetResponse()'a atayın ve sonra boşta kontrol edin ve aksi halde kullanın.

"Hiçbir OpenID uç noktası bulunamadı" hatasıyla ilgili olarak, bir localhost OpenID veya Yahoo gibi bir dış tarafın barındırdığı bir OpenID'ye karşı test mi yapıyorsunuz?

+0

Locahost OpenID'e karşı test yapıyorum. – azamsharp

+4

Daha sonra RP'nin web.config dosyanızın, bu web.config dosyasında gösterildiği gibi localhost OpenID'lere izin verdiğinden emin olun: http://github.com/AArnott/dotnetopenid/blob/master/samples/OpenIdRelyingPartyMvc/Web.config 'etiketi. –

4

İnternete bağlanmak için bir proxy kullanıyor olmama rağmen, web.config dosyasına aşağıdaki yapılandırmayı ekleyerek çözdüm.

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

hata mesajı sorununun ne gerçek bir açıklaması olmayabilir 'Hayır OpenID uç noktası bulunamadı' belirterek değer. Benim gmail e-posta adresini kullanarak çünkü

kendim için öyleydi ama aslında o zaman formatında .myopenid.com/

bir kodu oluşturulacaktır bir OpenId account oluşturmanız gerekir Enter Kimliği forma ve bu doğru çalışması gerekir.

0

İstemci uygulamanızda web.config dosyasını kontrol edin. bir bölüm vardır

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

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