2012-11-25 114 views
4

在我的ASP.NET MVC應用4,我試圖執行帳戶/ ExternalLogin 我配置,ASP.NET MVC 4 OAuthWebSecurity不工作

  1. 微軟(的Windows Live),
  2. Facebook 與ClientID和ClientSecret並啓用GoogleOpenAuth 不幸的是沒有任何工作。

    URL調用:提供商=微軟& SID = 95b923de889e4a4db6861c98fafb42a3 &代碼= f85770b1-266b-3ABD-4c46-8d62fe3014dc「> http://mydomain.com/account/externallogincallback 提供商 =微軟& SID = 95b923de889e4a4db6861c98fafb42a3 &代碼= f85770b1-266b-3ABD-4c46-8d62fe3014dc

    AuthenticationResult結果= OAuthWebSecurity.VerifyAuthentication(Url.Action( 「ExternalLoginCallback」,新的{RETURNURL = RETURNURL}));

所有OpenAuth調用都失敗,谷歌將返回認證錯誤, Facebook和微軟(Windows Live)給出了400個錯誤的請求響應。

任何人都可以建議如何解決這個問題嗎?

更多細節: 這些都是我用

  1. C中的DLL:\ Users \用戶名\文檔\ Visual Studio的 2012 \項目\ myProject的\包\ DotNetOpenAuth.AspNet.4.0.3.12153 \ LIB \ net40-full \ DotNetOpenAuth.AspNet.dll
  2. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \ Projects \ myProject \ packages \ DotNetOpenAuth.Core.4.0.3.12153 \ lib \ net40-full \ DotNetOpenAuth.Core。 dll
  3. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \ Projects \ myProj ect \ packages \ DotNetOpenAuth.OAuth.Core.4.0.3.12153 \ lib \ net40-full \ DotNetOpenAuth.OAuth.dll
  4. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \ Projects \ myProject \ packages \ DotNetOpenAuth。 OpenId.Core.4.0.3.12153 \ lib \ net40-full \ DotNetOpenAuth.OpenId.dll
  5. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \ Projects \ myProject \ packages \ DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153 \ LIB \ net40滿\ DotNetOpenAuth.OpenId.RelyingParty.dll

的Web.config

<compilation debug="true" targetFramework="4.5" > 
     <assemblies> 
     <add assembly="WebMatrix.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add assembly="WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </assemblies> 
    </compilation> 

發現問題: 嗯,我想出了它,我有一個自定義函數在應用程序啓動時觸發,這將強制完整的url小寫,當OAuth令牌回調到Facebook時,令牌值也是較低的,這是造成問題。很高興我能找到它:)

回答

1

不是很確定什麼原因沒有看到真實的代碼,但仔細檢查您傳遞給RequestAuthentication()的返回url是否與傳遞給VerifyAuthentication的返回url完全相同( )

+2

嗯,我想出來了,我有一個自定義函數在應用程序啓動時觸發,這將強制完整的URL以小寫字母和oAUth令牌回調到Facebook時,令牌值也是較低的,這是創建問題。很高興我能找到它:) – HaBo

+0

太好了。真高興你做到了。 – superkinhluan