【问题标题】:Simplest way to authenticate users across multiple websites/applications in .NET在 .NET 中跨多个网站/应用程序对用户进行身份验证的最简单方法
【发布时间】:2010-05-25 12:07:41
【问题描述】:

我能想到的方法有:

  • 使用 Windows Identity Foundation (WIF)。我从来没有这样做过,所以这是一个黑匣子并且有风险。
  • 使用表单身份验证或类似方法,然后使用数据库复制来确保每个应用程序都可以访问数据存储。

毫无疑问还有其他选择。

更多信息:这是针对 Internet 解决方案,而不是 Intranet/LAN

【问题讨论】:

  • 所有网站是否有一个共同的域名,还是有多个域?
  • 没有通用域名。否则可能会做一个 cookie hack :)

标签: .net authentication forms-authentication wif


【解决方案1】:

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

【讨论】:

  • 这是否适用于 Web 服务?我忘了提到我也需要能够针对 WCF Web 服务进行身份验证
【解决方案2】:

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

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

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

【讨论】:

  • 有关 WIF 的更多信息,我在 StackOverflow 上添加了许多问题和答案。
【解决方案3】:

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

尤金尼奥

【讨论】:

    【解决方案4】:

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

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

    我希望这会有所帮助!

    【讨论】:

      【解决方案5】:

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

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

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

      还可以查看 OpenID/OpenAuth 甚至 Facebook Connect,以使用单一登录对多个网站/应用程序进行身份验证。

      【讨论】:

      • 但是后备存储必须共享?
      • 我不明白你的问题。哪个后备商店?
      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多