繁体   English   中英

MVC4的问题和Google的外部登录

[英]Problems with MVC4 & External Login with Google

我有一个使用SimpleMembership的ASP .NET MVC4应用程序,并允许用户使用其Google帐户登录。

为此,我通过取消注释OAuthWebSecurity.RegisterGoogleClient();来配置应用程序的OAuthWebSecurity.RegisterGoogleClient();OAuthWebSecurity.RegisterGoogleClient(); 这行将google添加为外部登录方法。 ASP .NET MVC4 Internet应用程序模板已经附带的外部登录方法中,我并没有做太多改变。

问题:

当我在本地运行它(IIS express)或将其部署到“测试”服务器(IIS 6.1,仅可在Intranet上访问)时,一切正常。 当我单击“使用google登录”按钮时,我将被发送到google的身份验证页面,其网址如下所示:

https://accounts.google.com/ServiceLogin?service=lso&passive=12096...(long url)

las,当我将其部署到“生产”服务器(面向Internet)并尝试通过Internet进行访问时,Google身份验证将停止工作:当我单击“使用google登录”时,系统会将我发送到如下网址这个:

http://MY_APPLICATION_NAME.MY_DOMAIN.com/accounts/o8/ud?openid.claimed_id=http%3A%2F%2Fspecs.openid...(long url)

这个网址是错误的,不仅因为其中包含我的域(我认为应该是accounts.google.com?),还因为它的其余部分与身份验证有效时获得的网址完全不同。

我所知道并尝试过的:

如果我使用提琴手,当我通过Internet或Intranet访问该应用程序时,可以看到该应用程序的行为有所不同。

  • 如果我是通过网络访问的,则表明我正在向http://MY_APPLICATION_NAME.MY_DOMAIN.com/account/ExternalLogin?returnUrl=发出请求,然后向"Tunnel to www.google.com:443, Tunnel to accounts.google.com:443" 这样就可以了。
  • 如果我从互联网访问它,我看到我正在做一个请求http://MY_APPLICATION_NAME.MY_DOMAIN.com/account/ExternalLogin?returnUrl= ,然后又一个http://MY_APPLICATION_NAME.MY_DOMAIN.com/accounts/o8/ud?openid.claimed_id=http%3A%2F%2Fspecs.openid...(long url) 这显然给出了404。

我可能错了,但是我认为此URL是由OAuthWebSecurity.RequestAuthentication(provider, returnUrl) 让我感到困惑的是,它似乎是在向我的服务器而不是account.google.com请求认证。

到目前为止,我的研究仅给我带来了帖子/问题/等等。 显示使用SimpleMembership进行外部身份验证有多么容易,我可以看到每个人都以几乎相同的方式进行操作。

结论:

我相信这可能与我必须在web.config或IIS上配置的内容有关。 我确实知道对我的应用程序的请求到达了我的DNS服务器,该服务器进行URL重写并将请求转发到我的Web服务器,尽管我不知道这是否与问题有关。

是否有人对可能出什么问题或曾经有过类似问题有任何想法? 任何帮助,将不胜感激。

编辑:

我已经研究过OpenAuthSecurityManager.cs的源代码,尽管无法调试它,但由于我在IIS上的反向代理设置,该问题可能与RequestAuthentication方法中的HttpContext错误有关?

我最终提出了更改IT基础架构的请求。 由于以前的基础结构处理请求的方式,OpenAuthSecurityManager.cs可能收到了错误的HttpContext实例(请求到达了我们的DNS服务器,并使用UrlRerwrite规则转发到了网络内部另一台服务器上的Web服务) 。

现在正在工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM