C# asp.net MVC 4外部登录提供程序-';未找到OpenID端点';(谷歌)

C# asp.net MVC 4外部登录提供程序-';未找到OpenID端点';(谷歌),c#,asp.net-mvc,oauth,openid,asp.net-4.5,C#,Asp.net Mvc,Oauth,Openid,Asp.net 4.5,我正在学习MVC4(VisualStudioExpress 2012),并尝试使用openId/OAuth外部登录支持中烘焙的新模板。我一直在跟踪 到目前为止,我所做的只是创建一个新的带有表单身份验证的MVC4 internet应用程序,并取消对OAuthWebSecurity.RegisterGoogleClient()的注释行,位于AuthConfig.cs文件中 从一个股票模板中修改一行代码看起来应该很容易,但是当我运行这个项目时,当我点击google按钮时,会出现“找不到OpenID端点

我正在学习MVC4(VisualStudioExpress 2012),并尝试使用openId/OAuth外部登录支持中烘焙的新模板。我一直在跟踪

到目前为止,我所做的只是创建一个新的带有表单身份验证的MVC4 internet应用程序,并取消对
OAuthWebSecurity.RegisterGoogleClient()的注释行,位于
AuthConfig.cs
文件中

从一个股票模板中修改一行代码看起来应该很容易,但是当我运行这个项目时,当我点击google按钮时,会出现“找不到OpenID端点”的异常

请记住,我以前没有尝试使用OAuth/OpenID做任何事情的经验

这可能与我在我的开发机器上通过本地主机运行它有关吗?或者其他一些环境变量,比如我们的公司代理服务器/防火墙

我的印象是,您可以从localhost(至少对于谷歌)测试这一点

还是有其他原因导致这个错误

在回答之前,请注意,我不想编写自定义代码来实现此功能。我想使用股票模板


更新
我在家里试过,在本地主机上也没问题。这一定与我工作场所的网络环境有关。可能是防火墙或代理。我仍然很想让它在工作中发挥作用,不过如果有人有任何建议的话…

据我所知,你正确地遵循了教程,但在使用谷歌方面似乎有点粗略。这有更多的细节:并可能提供更好的一步一步

特别是,请注意本教程开头的NuGet包。除了获取必要的.dll程序集以使其正常工作外,NuGet软件包还经常对
Web.Config
文件进行更改,我希望在该文件中找到Oauth提供程序的端点信息。如果没有安装所有这些软件包,则可能缺少一些配置设置

我没有你正在谈论的特定项目模板,所以我无法检查:你能发布你的web.config吗?可能有些东西需要调整

哦,还有一个关于编写自己的谷歌提供商的教程,看起来很简单:

我在本地主机上的OAuth提供程序也遇到过类似的问题,不确定这是否是您出现问题的原因,但如果我在做任何OAuth工作,我总是确保在端口80上运行,并为以下内容添加一行:

127.0.0.1     www.local.com 
C:\Windows\System32\drivers\etc
(您需要以管理员身份在记事本中打开), 然后不去
http://localhost:1234
只需转到
http://www.local.com
试试看。它可能无法解决问题,但排除了另一件事,
希望这对您有所帮助

如果您仅在办公室遇到此问题,那么代理可能就是问题所在。将代理自动检测配置添加到项目的
Web.config
文件应该可以实现以下目的:

<configuration>
  ...
  <system.net>
   <defaultProxy useDefaultCredentials="True">
    <proxy autoDetect="True" usesystemdefault="True" />
   </defaultProxy>
  </system.net>
</configuration>

...

未找到终结点通常意味着尝试调用web服务或api,但web.config文件中不存在该服务的终结点绑定。是否部署到Windows Azure?如果是这样,这可能是你的修复:谢谢你的信息。该模板内置于VS2012 express for web中。说真的,在安装VS2012 express for web之后,我所做的一切就是创建一个新的MVC4 C#项目—internet应用程序—然后取消对这一行的注释!我以前读过第一篇文章。不过,我对编写自定义代码并不感兴趣。我只是想知道如何让股票模板工作,我想这是一个环境类型的问题,可能是我们公司的代理服务器,或者我作为本地主机运行它。这很公平。作为一名.net程序员,我本能地在web.config中查找缺少端点的问题。端点只是.net服务的寻址配置(OpenAuth只是另一个服务)。虽然您可以在代码中配置它们,但MS的方法通常是在.config文件中进行配置。但是没有你在这里测试的模板,我不能确认这一点。祝你好运-我希望你能找到一个解决方案。@LDMediaServices:OAuth/Openid模板在.config中没有端点配置,因为(我假设)它们是在程序集中以编程方式完成的,比如在Microsoft.Web.WebPages.OAuth中的DotNetOpenAuth.*18rth。我怀疑这是一个代理问题(似乎不是防火墙),我不知道是否有一个简单的解决方法。谢谢你的提示。不幸的是,它没有帮助,但也许其他人会发现它在未来有用。