3

我正在学习 MVC 4 (Visual Studio Express 2012) 并尝试使用在 openId/OAuth 外部登录支持中烘焙的新模板。我一直在关注这个教程

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

从股票模板更改一行代码似乎应该很容易,但是当我运行项目时,当我单击 google 按钮时,我得到一个“未找到 OpenID 端点”异常。

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

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

我从本教程中得到的印象是,您可以从 localhost 进行测试(至少对于 Google 而言)。

还是该错误有其他原因?

在回答之前,请注意我不想编写自定义代码来使其正常工作。我想使用股票模板。


更新

我在家里试过了,在本地主机上没有问题。一定和我工作场所的网络环境有关。可能是防火墙或代理。如果有人有任何建议,我仍然希望让这个工作正常工作......

4

3 回答 3

1

据我所知,您正确地遵循了本教程,但使用 Google 似乎有点粗略。这有更多细节:http: //blogs.msdn.com/b/webdev/archive/2012/09/12/integrate-openauth-openid-with-your-existing-asp-net-application-using-universal-providers .aspx并且可能会提供更好的分步操作。

特别要注意本教程开头的 NuGet 包。除了获得工作所需的 .dll 程序集外,NuGet 包还经常更改Web.Config文件,我希望在该文件中找到您的 Oauth 提供程序的端点信息。如果您没有安装所有这些软件包,您可能会丢失一些配置设置。

我没有你所说的具体项目模板,所以我无法检查:你能发布你的 web.config 吗?那里可能有一些需要调整的地方。

哦,还有一个关于编写自己的 Google 提供程序的教程,看起来很简单:http: //blogs.msdn.com/b/webdev/archive/2012/08/23/plugging-custom-oauth-openid-providers .aspx

于 2012-09-17T10:36:19.920 回答
0

我在 localhost 上与 OAuth 提供程序有类似的问题,不确定这是否真的是您的问题的原因,但如果我正在做任何 OAuth 的事情,我总是确保我在端口 80 上运行并添加一行:

127.0.0.1     www.local.com 

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

于 2012-09-20T09:22:19.587 回答
0

如果您仅在办公室遇到此问题,则代理可能是问题所在。将代理自动检测配置添加到项目Web.config文件中应该可以解决问题:

<configuration>
  ...
  <system.net>
   <defaultProxy useDefaultCredentials="True">
    <proxy autoDetect="True" usesystemdefault="True" />
   </defaultProxy>
  </system.net>
</configuration>
于 2015-03-03T14:49:34.340 回答