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

时间:2010-04-21 01:46:47

标签: .net authentication forms-authentication wif

我能想到的方法是:

  • 使用Windows Identity Foundation(WIF)。我从来没有这样做过,所以是一个黑盒子,风险很大。
  • 使用Forms Authentication等,然后使用数据库复制确保每个应用程序都可以访问数据存储。

毫无疑问还有其他选择。

更多信息:这是针对互联网解决方案,而不是内联网/局域网

5 个答案:

答案 0 :(得分:1)

我使用DotNetOpenAuth取得了很大的成功。 StackOverflow使用它。 http://dotnetopenauth.net

答案 1 :(得分:1)

我一直在使用Windows Identity Foundation。当然,文档很差。

看起来真的很棒,是“基于声明的身份验证”。它基本上允许登录系统授予“声明”,这些声明基本上是描述用户的信息串。声明是使用私钥签署的,因此依赖.net应用程序可以识别声明是真实的。

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

答案 2 :(得分:1)

如果您对基于声明的方法感兴趣(会打开联邦等各种有趣的机会),请查看“声明身份指南”:http://msdn.microsoft.com/en-us/library/ff423674.aspx

Eugenio

答案 3 :(得分:0)

这个HowTo可以让您了解如何针对AD实例执行用户身份验证,以防您的身份验证后面有域。

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

我希望这有帮助!

答案 4 :(得分:0)

ASP.NET Membership Services是一个不错的选择。它允许您使用数据库,Active Directory或您自己的自定义身份验证进行备份。

http://msdn.microsoft.com/en-us/library/yh26yfzy(VS.85).aspx

它不仅限于网站,也可以通过Web服务从Silverlight和WPF中使用。

另请参阅OpenID / OpenAuth甚至Facebook Connect,使用单一登录信息对多个网站/应用程序进行身份验证。