Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建一个支持Facebook、Twitter、Google的.NET网站;OAuth登录_C#_.net_Asp.net Mvc 4 - Fatal编程技术网

C# 创建一个支持Facebook、Twitter、Google的.NET网站;OAuth登录

C# 创建一个支持Facebook、Twitter、Google的.NET网站;OAuth登录,c#,.net,asp.net-mvc-4,C#,.net,Asp.net Mvc 4,我想实现OAuth功能,以允许我正在构建的应用程序的用户通过Facebook、Twitter以及可能的Google plus登录。到目前为止,我发现的每一篇文章似乎都建议从头开始,创建一个MVC4“互联网应用程序”项目 实现此功能需要哪些相关参考、代码段、插件等 我目前正在使用表单授权。设置表单身份验证后,MVC 4内置了一个支持用户使用名为DotNetOpenAuth的开源项目使用OpenID和OAuth对自己进行身份验证的系统,它与使用cookie和重定向的表单身份验证非常相似 这些服务只需

我想实现OAuth功能,以允许我正在构建的应用程序的用户通过Facebook、Twitter以及可能的Google plus登录。到目前为止,我发现的每一篇文章似乎都建议从头开始,创建一个MVC4“互联网应用程序”项目

实现此功能需要哪些相关参考、代码段、插件等


我目前正在使用表单授权。

设置表单身份验证后,MVC 4内置了一个支持用户使用名为DotNetOpenAuth的开源项目使用OpenID和OAuth对自己进行身份验证的系统,它与使用cookie和重定向的表单身份验证非常相似

这些服务只需要在应用程序启动期间进行配置。在Application_Start()事件中有一个调用AuthConfig.RegisterAuth(),其中包含刚刚注释掉的第三方服务代码

在使用这些服务之前,您需要向大多数服务注册应用程序。当您向第三方注册时,通常会为您分配一个appId和一个appSecret。您需要将这些值插入代码中,并在其中注册为客户机

谷歌是唯一一个被注释掉的提供商,它不需要任何注册,所以你可以取消对该行的注释。OAuthWebSecurity.RegisterGoogleClient();在AuthConfig.cs文件中

当您重新构建应用程序并转到登录页面时,您将看到右侧有一个Google按钮,您可以按下该按钮通过Google服务登录。此按钮将用户重新定向到谷歌,在那里他们可以使用自己的谷歌帐户登录。一旦他们登录,谷歌将询问用户是否愿意你的应用程序有他们的电子邮件地址。用户必须回答是,如果他们拒绝,他们将不会登录到您的应用程序

然后,Google将重新定向回您的应用程序,发送一些加密密封和签名的参数,以便OpenAuth可以验证Google是否确实对用户进行了身份验证。一旦用户成功通过身份验证并登录,他们可以通过单击将显示的注册按钮创建帐户

AuthConfig.cs文件顶部的注释中有一个链接,指向一个页面,告诉您如何向其他第三方服务注册。

关于“不创建internet应用程序”执行此操作的请求

“Internet应用程序”是一种告诉Visual Studio您使用它的目的的项目类型。它不是任何.NET标准所要求的,但是如果您使用的是Visual Studio,那么这是您需要采取的步骤。否则VS不知道它是否应该帮助您构建WinForms应用程序、控制台应用程序、WPF等

您可以使用的另一种项目类型是网站,但是,如果您打算利用.NET,那么Internet应用程序是更好的选择——它假定您构建的网站将运行.NET代码



其他人提到使用DotNetOpenAuth来运行您的站点;我完全支持这一点,但也想提及该项目。它实现了类似的结果,但使用。很有可能您不想使用它,但评估其他选项总是很好的——它们可以帮助您了解彼此的优缺点。

OAuth更多的是授权网站代表最终用户行事;关于通用身份验证机制的讨论较少。您可能想转而研究OpenID?请注意,答案应该是搜索解决方案的终点(而不是另一个参考的中途停留,它往往会随着时间的推移变得过时)。请考虑在这里添加一个独立的概要,将链接作为参考。