Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
在.NET中跨多个网站/应用程序对用户进行身份验证的最简单方法_.net_Authentication_Forms Authentication_Wif - Fatal编程技术网

在.NET中跨多个网站/应用程序对用户进行身份验证的最简单方法

在.NET中跨多个网站/应用程序对用户进行身份验证的最简单方法,.net,authentication,forms-authentication,wif,.net,Authentication,Forms Authentication,Wif,我能想到的方法是: 使用Windows身份基础(WIF)。我从来没有这样做过,所以这是一个黑箱和风险 使用表单身份验证或类似方法,然后使用数据库复制来确保每个应用程序都可以访问数据存储 毫无疑问,还有其他选择 更多信息:这是一个互联网解决方案,而不是intranet/LAN我在使用DotNetOpenAuth时取得了很大的成功。StackOverflow使用它 这应该让您了解如何对AD实例执行用户身份验证,以防您的身份验证背后有一个域 WCF只是跨通信网络进行通信的一种方式,所以您也可以通过

我能想到的方法是:

  • 使用Windows身份基础(WIF)。我从来没有这样做过,所以这是一个黑箱和风险
  • 使用表单身份验证或类似方法,然后使用数据库复制来确保每个应用程序都可以访问数据存储
毫无疑问,还有其他选择


更多信息:这是一个互联网解决方案,而不是intranet/LAN

我在使用DotNetOpenAuth时取得了很大的成功。StackOverflow使用它

这应该让您了解如何对AD实例执行用户身份验证,以防您的身份验证背后有一个域

WCF只是跨通信网络进行通信的一种方式,所以您也可以通过WCF对AD进行身份验证


我真希望这有帮助

ASP.NET会员服务是一个不错的选择。它允许您使用数据库、Active Directory或您自己的自定义身份验证来支持它

它不仅限于网站,还可以在通过web服务公开时从Silverlight和WPF使用


还查看OpenID/OpenAuthTM甚至脸谱网Connect,用于使用单个登录来对多个网站/应用程序进行身份验证。

< P>我一直使用Windows身份基础。当然,文档很差

但真正伟大的是“基于声明的身份验证”。它基本上允许登录系统授予“声明”,声明基本上是描述用户的信息字符串。声明是用私钥签名的,因此依赖的.net应用程序可以识别声明是真实的


此外,您可以使用任何有关用户信息的底层存储(SQL、AD),存储授权用户信息的方法完全是从应用程序中抽象出来的。有一天,您可以从SQL切换到AD,如果设置正确,依赖的.net应用程序将收到完全相同的声明,并且永远不会知道区别。

如果您对基于声明的方法感兴趣(这将打开各种有趣的机会,如联合会等),请参阅“声明身份指南”:


Eugenio

所有站点是否都有一个通用域名,或者是否有多个域?没有通用域名。否则prob可能会进行cookie攻击:)这对Web服务有效吗?我忘了提到我需要能够针对WCF web服务进行身份验证,但备份存储必须共享?我不理解你的问题。哪个支持存储?有关WIF的更多信息,我已经添加了许多关于StackOverflow的问题和答案。