6

如果我误用或混淆了 OpenID 和 OAuth 这两个术语,我深表歉意,我对整个去中心化登录过程还是新手。

几天来,我一直在尝试让我的网站(内置于 WebMatrix)识别 Google 登录。问题是我的文件中需要这行代码(根据我的研究)_AppStart.cshtml

OAuthWebSecurity.RegisterGoogleClient();

但是,当我在此语句到位后尝试运行此站点时,我只是得到一个服务器错误,指出OAuthWebSecurity.RegisterGoogleClient();当前上下文中不存在。

我想我可能需要 OAuth 库、不同的帮助程序或其他一些包,但我看到的唯一相关包(Microsoft WebPages OAuth library 2.0.20710.0)我无法获得,因为 WebMatrix 不支持 NuGet 的版本它说我需要(2.0)。

我以前从未使用此方法登录,我想了解如何为我的客户构建此功能。我不想做的是打开入门模板,然后复制我的文件。我在使用我不理解的代码时遇到问题。我觉得这对我来说是一个糟糕的习惯(在我什至会使用 jQuery 插件之前,我花了一些时间说服自己)。还可能值得一提的是,我不会使用任何其他第三方服务进行此登录。我们将 gmail 用于员工的公司电子邮件帐户,因此我只需要 Google登录即可使用此解决方案。

我尝试过的事情:

  • 谷歌搜索像我这样的其他场景。失败,因为没有找到相关的搜索结果(即,我无法找到与我的场景匹配的结果)
  • 搜索Microsoft WebPages OAuth 库 2.0.20710.0包的早期版本。失败,因为我的搜索没有返回这样的包。
  • 使用OAuthWebSecurity.RegisterOpenIDClient(BuiltInOpenIDClient.Google);而不是OAuthWebSecurity.RegisterGoogleClient(); 失败的原因与使用时相同OAuthWebSecurity.RegisterGoogleClient();
  • 访问站点管理并下载 OAuth 库。 由于 NuGet 需要更新而失败
  • 由于此处提到的内容(显然,WebMatrix 的一个已知错误), 更新 Nuget失败: http ://forums.asp.net/t/1836913.aspx/1?Error+updating+DotNetOpenAuth+updates+with+NuGet+Gallery
  • 打开 Starter Site Template,它已经内置了 OAuth 并且可以正常工作。未能告诉我为什么该站点可以识别OAuthWebSecurity.RegisterGoogleClient()而我的站点不能识别,因为没有明确的方法(我知道)来说明第三方软件的哪些软件包、更新和/或版本可能不同。
  • 创建一个新的起始站点并从 *"App_Data"* 和"bin"文件夹中复制任何基于 OAuth 的缺失文件。失败在于没有观察到行为变化。

-----------------------------------------更新-------- --------------------------------

到目前为止,至少对我来说,这个问题的最佳解决方案是只使用 WebMatrix 中的“Starter Site”模板,无论我喜欢与否。

然而,我这样做的最大担忧之一是,有太多无关的文件,我不确定我可以删除哪些文件以保持网站清洁,同时仍然让OAuthWebSecurity()课程完全可访问和正常运行。但是,我只保留了“Starter Site”模板中的“bin”和“App_Data”文件夹(当然包括它们的所有内容),并在移动文件之前删除了其他所有内容(包括 web.config 文件),到目前为止,这对我来说似乎效果很好。

使用上面提到的步骤,我保持我的站点没有不必要的代码,同时仍然可以访问OAuthWebSecurity()该类。

将来(我想当 WebMatrix 3 发布时)这个错误可能会得到修复,并且 OAuth 库的简单管理站点安装将不需要 WebMatrix 不支持的 NuGet 版本,但在那之前,这是最好的替我回答。

4

3 回答 3

2

这个GitHub 项目是否有帮助:WorldDomination.Web.Authentication ??

在此处输入图像描述

如果您喜欢的话,还有一个MVCNancyFX nuget 包可以进行一些自动接线。

免责声明:我从来没有尝试过Webmatrix,也永远不会打算尝试它。也就是说,它可能仍然有效!:)

于 2013-03-28T14:08:45.033 回答
1

您是否尝试过以下软件包?

PM> Install-Package Microsoft.AspNet.WebPages.OAuth
于 2014-04-11T14:26:58.013 回答
-1

安装Microsoft.AspNet.WebPages.OAuth包。

您可以使用包管理器控制台或在 GUI 包管理器中安装它。

于 2015-10-15T04:47:58.123 回答