ASP.NET MVC 4 OAuthWebSecurity无法正常工作

时间:2012-11-25 06:32:27

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

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

  1. Microsoft(Windows Live),
  2. 实 使用ClientID和ClientSecret并启用GoogleOpenAuth 遗憾的是没有任何工作。

    网址调用:provider = microsoft& sid = 95b923de889e4a4db6861c98fafb42a3& code = f85770b1-266b-3abd-4c46-8d62fe3014dc“> http://mydomain.com/account/externallogincallback?提供商 =微软&安培;的 SID = 95b923de889e4a4db6861c98fafb42a3&安培;代码= f85770b1-266b-3ABD-4c46-8d62fe3014dc

    AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action(“ExternalLoginCallback”,new {ReturnUrl = returnUrl}));

  3. 所有OpenAuth调用都失败,Google将返回身份验证错误, Facebook和微软(Windows Live)提供了400个不良请求响应。

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

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

    1. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \项目\ myProject的\包\ DotNetOpenAuth.AspNet.4.0.3.12153 \ lib中\ net40满\ DotNetOpenAuth.AspNet.dll
    2. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \项目\ myProject的\包\ DotNetOpenAuth.Core.4.0.3.12153 \ lib中\ net40满\ DotNetOpenAuth.Core.dll
    3. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \项目\ myProject的\包\ DotNetOpenAuth.OAuth.Core.4.0.3.12153 \ lib中\ net40满\ DotNetOpenAuth.OAuth.dll
    4. C:\ Users \ UserName \ Documents \ Visual Studio 2012 \项目\ myProject的\包\ DotNetOpenAuth.OpenId.Core.4.0.3.12153 \ lib中\ net40满\ 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
    6. 的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 个答案:

答案 0 :(得分:1)

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