如果我滥用或混淆OpenID和OAuth这两个术语,我道歉,我仍然是整个分散登录过程的新手。
我几天来一直试图让我的网站(内置于WebMatrix)识别谷歌登录。问题是我在_AppStart.cshtml
文件中需要这行代码(来自我研究过的代码):
OAuthWebSecurity.RegisterGoogleClient();
但是当我在此声明到位后尝试运行此站点时,我只是收到服务器错误,指出当前上下文中不存在OAuthWebSecurity.RegisterGoogleClient();
。
我以为我可能需要OAuth库,不同的帮助器或其他一些软件包,但我看到的唯一相关软件包( Microsoft WebPages OAuth库2.0.20710.0 )我无法获取,因为WebMatrix不支持NuGet的版本,所以它说我需要(2.0)。
我之前从未使用此方法进行登录,我想了解如何为我的客户构建此功能。我不想要做的是打开启动器模板,然后复制我的文件。我使用我不理解的代码时遇到问题。我觉得这对我来说是一个可怕的习惯(在我甚至使用jQuery插件之前,它需要一些说服力)。它也可能会提到我将不会使用任何其他第三方服务进行此登录。我们将gmail用于员工的公司电子邮件帐户,因此我需要仅Google 登录此解决方案。
我尝试过的事情:
OAuthWebSecurity.RegisterOpenIDClient(BuiltInOpenIDClient.Google);
代替OAuthWebSecurity.RegisterGoogleClient();
失败的原因与使用OAuthWebSecurity.RegisterGoogleClient();
OAuthWebSecurity.RegisterGoogleClient()
而我的网站没有,因为没有明确的方法(我知道)告诉第三方软件的pacakages,更新和/或版本可能有所不同。 -----------------------------------------的更新 ----------------------------------------
到目前为止,到目前为止,至少对我来说,解决这个问题的最佳方法是使用WebMatrix中的“Starter Site”模板,无论我喜不喜欢。
然而,我最担心的一个问题是,有太多无关的文件,我不知道我能做什么,也不能删除,以保持网站清洁,同时仍然离开OAuthWebSecurity()
课程完全可访问和功能。然而,我在“Starter Site”模板中只保留了“bin”和“App_Data”文件夹(当然包括所有内容),并在移动文件之前删除了其他所有内容(包括web.config文件),到目前为止,这对我来说似乎很有效。
使用上述步骤,我保持网站清洁不必要的代码,同时仍然可以访问OAuthWebSecurity()
类。
将来(我想在发布WebMatrix 3时)可能会修复此错误,并且OAuth库的简单管理站点安装不需要WebMatrix不支持的NuGet版本,但在此之前,对我来说是最好的答案。
答案 0 :(得分:2)
这是GitHub project help : WorldDomination.Web.Authentication ??
还有一个MVC和NancyFX nuget程序包可以自动连接,如果需要你的想法。
免责声明:我从来没有在Webmatrix
中尝试这种做法,并且永远不会计划尝试它。那说,它可能仍然有用! :)
答案 1 :(得分:1)
您是否尝试过以下套餐?
PM> Install-Package Microsoft.AspNet.WebPages.OAuth
答案 2 :(得分:-1)
安装 Microsoft.AspNet.WebPages.OAuth 包。
您可以使用程序包管理器控制台或GUI程序包管理器安装它。