【问题标题】:How can I get started using OpenID/OAuth with my WebMatrix site?如何开始在我的 WebMatrix 站点上使用 OpenID/OAuth?
【发布时间】:2013-03-19 00:06:24
【问题描述】:

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

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

OAuthWebSecurity.RegisterGoogleClient();

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

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

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

我尝试过的事情:

  • 谷歌搜索类似我的其他场景。 失败,因为没有找到相关的搜索结果(即,我无法找到与我的场景匹配的结果)
  • 正在搜索早期版本的 Microsoft WebPages OAuth library 2.0.20710.0 包。 失败,因为我的搜索未返回此类包。
  • 使用OAuthWebSecurity.RegisterOpenIDClient(BuiltInOpenIDClient.Google); 而不是OAuthWebSecurity.RegisterGoogleClient(); 失败的原因与使用OAuthWebSecurity.RegisterGoogleClient(); 时相同
  • 访问站点管理并下载 OAuth 库。 失败,因为 NuGet 需要更新
  • 更新 Nuget 由于此处提到的内容而失败(显然是 WebMatrix 的一个已知错误): 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 版本,但在那之前,这有对我来说是最好的答案。

【问题讨论】:

  • 很好的问题。抱歉,我没有任何想法。

标签: c# oauth openid webmatrix asp.net-webpages


【解决方案1】:

这是GitHub project help : WorldDomination.Web.Authentication 吗??

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

免责声明:我从未在Webmatrix 中尝试过,也永远不会计划尝试它。也就是说,它可能仍然有效! :)

【讨论】:

  • 感谢您的帮助,但我只是说实话。我不知道我该怎么做。我想如果我在 anything 中输入该命令并按下回车键,宇宙就会自行崩溃。
  • 别开玩笑了,我真的想不出任何 WebMatrix 界面会接受这样的命令。此外,我通常发现 WebMatrix 环境之外的解决方案很少在 WebMatrix 环境中工作。我以前也曾以这种方式不可逆转地破坏。
  • 虽然这个答案还没有解决我的问题,但我认为我必须对此 +1,因为它很可能是迄今为止最接近这个问题的解决方案。
  • 对不起@VoidKing - 这是一个 NuGet 包。在 WebMatrix 中,你能找到 NuGet GUI 吗?如果是这样,请搜索 WorldDomination.Web.Authentication 等,看看是否可以将其“添加”到您的项目中。 (我从不在 Visual Studio 中使用 NuGet GUI,只是在 Visual Studio 中使用 NuGet 包窗口)。
  • 好的,我会尝试并告诉你!谢谢!
【解决方案2】:

你试过下面的包吗?

PM> Install-Package Microsoft.AspNet.WebPages.OAuth

【讨论】:

    【解决方案3】:

    安装 Microsoft.AspNet.WebPages.OAuth 包。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      相关资源
      最近更新 更多