我该如何在我的WebMatrix网站上开始使用OpenID/OAuth?

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 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
  • 打开起始网站模板,该模板已经内置了OAuth并且可以正常使用。无法教会我为什么这个站点认识OAuthWebSecurity.RegisterGoogleClient()而我的不认识,因为没有明确的方法(我所知道的)来确定可能不同的第三方软件的包、更新和/或版本。
  • 创建新的起始网站,并从*"App_Data"*和"bin"文件夹中复制任何基于OAuth的缺失文件。 失败,因为没有观察到任何行为上的变化。

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

到目前为止,对于我来说,这个问题的最佳解决方案是使用WebMatrix中的“Starter Site”模板,不管我是否喜欢它。

然而,我最大的担心之一是有太多无关的文件,我不确定哪些文件可以删除,以使网站保持干净,同时仍然保留OAuthWebSecurity()类的完全访问和功能。 然而,在将我的文件移动过去之前,我只保留了“Starter Site”模板中的“bin”和“App_Data”文件夹(当然包括它们的所有内容),并删除了其他所有文件(包括web.config文件),目前看来这对我非常有效。

使用上述步骤,我将网站保持干净,而仍然可以访问OAuthWebSecurity()类。

在未来(我想象中WebMatrix 3发布后),这个bug可能会被修复,OAuth库的简单管理网站安装将不需要WebMatrix不支持的NuGet版本,但在那之前,这对我来说是最好的答案。


很好的问题。抱歉我没有任何想法。 - Knox
3个回答

2
这个GitHub项目 WorldDomination.Web.Authentication 是否有帮助?此外,还有一个MVCNancyFX nuget包可以自动连接,如果你喜欢的话。
免责声明:我从未在Webmatrix中尝试过这个,并且也不打算尝试。尽管如此,它仍然可能有效! :)

说句实话,我真的想不出任何WebMatrix界面会接受这样的命令。此外,我通常发现在WebMatrix环境之外的解决方案很少能在WebMatrix环境内起作用。我以前就是这样无法挽回地破坏了一些东西。 - VoidKing
虽然这个答案还没有解决我的问题,但我认为我必须点赞,因为它可能是迄今为止最接近这个问题的解决方案。 - VoidKing
抱歉@VoidKing - 那是一个NuGet包。在WebMatrix中,您能否找到NuGet GUI? 如果可以,请搜索WorldDomination.Web.Authentication等等.. 然后查看是否可以将其“添加”到您的项目中。(我从不使用Visual Studio中的NuGet GUI,只使用NuGet包窗口)。 - Pure.Krome
好的,我会尝试并告诉你!谢谢! - VoidKing
不错的解决方案,但恐怕我没有足够的技术知识来实现这个解决方案。我根本不明白你的包如何集成到WebMatrix环境中。如果你有任何其他想法,请告诉我,再次感谢你的帮助! - VoidKing
显示剩余6条评论

1
你尝试过以下的包吗?
PM> Install-Package Microsoft.AspNet.WebPages.OAuth

-1

安装 Microsoft.AspNet.WebPages.OAuth 包。

您可以使用包管理器控制台或 GUI 包管理器进行安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接