asp.net-mvc-4 - ASP.NET MVC 4 OAuthWebSecurity 不起作用

标签 asp.net-mvc-4 dotnetopenauth .net-4.5

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

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

    网址调用: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\用户名\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.AspNet.4.0.3.12153\lib\net40-full\DotNetOpenAuth.AspNet.dll
  2. C:\Users\用户名\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.Core.dll
  3. C:\Users\用户名\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.OAuth.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OAuth.dll
  4. C:\Users\用户名\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.OpenId.Core.4.0.3.12153\lib\net40-full\DotNetOpenAuth.OpenId.dll
  5. C:\Users\用户名\Documents\Visual Studio 2012\Projects\myProject\packages\DotNetOpenAuth.OpenId.RelyingParty.4.0.3.12153\lib\net40-full\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 token 回调到 Facebook 时, token 值也是小写,这会产生问题。很高兴我能找到它:)

最佳答案

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

关于asp.net-mvc-4 - ASP.NET MVC 4 OAuthWebSecurity 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548865/

相关文章:

c# - 具有 T 类型如何在程序集中找到所有扩展 Base<T> 的类?

asp.net-mvc-3 - IValidatableObject 在 mvc 4 网络应用程序中不起作用

asp.net-mvc - 在 View 中无法识别 ViewModel

asp.net - Dotnetopenauth,从 facebook 范围检索电子邮件

c# - 实现 OpenID : identifying users

c# - 观察 sql 数据库中的表新记录

razor - MVC 4 - 如何在 View 中将 linq 返回到实体查询结果

javascript - 在 C# 中上传时在图像上添加日期

c# - 谷歌+ API : How can I use RefreshTokens to avoid requesting access every time my app launches?

c# - .Net 4.5 杀死了我的 TPL,现在呢?