4

在我的 ASP.NET mvc 4 应用程序中,我尝试实现 我配置的Account/ExternalLogin ,

  1. 微软(Windows Live),
  2. 不幸的是,具有 ClientID 和 ClientSecret 并启用了 GoogleOpenAuth 的 Facebook 没有任何效果。

    Url call: provider=microsoft& sid =95b923de889e4a4db6861c98fafb42a3&code=f85770b1-266b-3abd-4c46-8d62fe3014dc">http://mydomain.com/account/externallogincallback? provider =microsoft& sid =95b923de889e4a4db6861c98fafb42a3&code=f85770b1-266b-3abd-4c46-8d62fe3014dc

    AuthenticationResult 结果 = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl }));

所有 OpenAuth 调用均失败,Google 将返回身份验证错误,Facebook 和 Microsoft(Windows Live)给出 400 错误请求响应。

任何人都可以建议如何解决这个问题?

更多细节:这些是我使用的 DLL

  1. C:\Users\UserName\Documents\Visual Studio 2012\Projects\myProject\packages\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\myProject\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-full\DotNetOpenAuth.OpenId.RelyingParty.dll

网页配置

 <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 时,令牌值也小写,这造成了问题. 很高兴我能找到它:)

4

1 回答 1

1

在没有看到真实代码的情况下不太确定是什么原因,但请仔细检查您传递给 RequestAuthentication() 的返回 url 是否与传递给 VerifyAuthentication() 的返回 url 完全相同

于 2012-11-27T17:34:08.673 回答