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

时间:2013-03-28 13:56:15

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

如果我滥用或混淆OpenID和OAuth这两个术语,我道歉,我仍然是整个分散登录过程的新手。

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

OAuthWebSecurity.RegisterGoogleClient();

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

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

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

我尝试过的事情:

  • Google搜索我的其他情况。 失败,因为找不到相关的搜索结果(即,我无法找到符合我情景的结果)
  • 搜索 Microsoft WebPages OAuth库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()而我的网站没有,因为没有明确的方法(我知道)告诉第三方软件的pacakages,更新和/或版本可能有所不同。
  • 创建新的简化网站并从*“App_Data”*和“bin”文件夹中复制任何基于OAuth的丢失文件。 失败,因为没有观察到任何行为变化。

-----------------------------------------的更新 ----------------------------------------

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

然而,我最担心的一个问题是,有太多无关的文件,我不知道我能做什么,也不能删除,以保持网站清洁,同时仍然离开OAuthWebSecurity()课程完全可访问和功能。然而,我在“Starter Site”模板中只保留了“bin”和“App_Data”文件夹(当然包括所有内容),并在移动文件之前删除了其他所有内容(包括web.config文件),到目前为止,这对我来说似乎很有效。

使用上述步骤,我保持网站清洁不必要的代码,同时仍然可以访问OAuthWebSecurity()类。

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

3 个答案:

答案 0 :(得分:2)

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

enter image description here

还有一个MVCNancyFX nuget程序包可以自动连接,如果需要你的想法。

免责声明:我从来没有在Webmatrix中尝试这种做法,并且永远不会计划尝试它。那说,它可能仍然有用! :)

答案 1 :(得分:1)

您是否尝试过以下套餐?

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

答案 2 :(得分:-1)

安装 Microsoft.AspNet.WebPages.OAuth 包。

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