在我的 ASP.NET mvc 4 应用程序中,我尝试实现 我配置的Account/ExternalLogin ,
- 微软(Windows Live),
不幸的是,具有 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
- C:\Users\UserName\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.dll
- C:\Users\UserName\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.dll
- C:\Users\UserName\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.dll
- C:\Users\UserName\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.dll
- 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 时,令牌值也小写,这造成了问题. 很高兴我能找到它:)