【问题标题】:How do I maintain a cookie based session in MVC, without a WIF STS/IDP?在没有 WIF STS/IDP 的情况下,如何在 MVC 中维护基于 cookie 的会话?
【发布时间】:2013-01-12 14:29:12
【问题描述】:

从表面上看,我觉得我需要WIF的很多功能

  • 使用角色区分会话的能力
  • 服务器上没有会话状态
  • 所有身份验证和角色数据都驻留在仅 HTTP cookie 中
  • ASP.NET MVC 支持

但是对于我的应用程序,我想使用我自己的自定义身份存储并且不使用 Windows 身份验证。

这让我相信我需要设置一个自定义 IDP 才能使用 WIF,我开始认为这可能会带来太多开销/人工。

  1. 是否有类似于 WIF+ 和 IDP 的技术可以提供我上面列出的功能?

  2. 缺少这些,我是否有一个定义明确的模式来实现 IDP + 网站的组合?

【问题讨论】:

    标签: asp.net-mvc session authentication wif windows-identity


    【解决方案1】:

    WIF 基本上是 WS-Trust 和 WS-Federation 协议的包装器...老实说,这很让人头疼 - 特别是如果您想创建自己的提供程序而不是使用 ADFS 或类似的东西。

    如果您使用自己的身份存储...那么远离那个 imo...如果您只对单个站点的用户进行身份验证,请使用 OAuth\OpenID... 或 MVC 中的内置成员资格提供程序.

    【讨论】:

    • 错了——WIF 还包括对 WS* 的支持——但远不止这些。
    • 对于会话管理,您可以使用 SessionAuthenticationModule (SAM) 和 SessionSecurityToken。不需要(外部)IdP。
    • 在这个问题的上下文中 - 如果您有 IDP(与 AD 或 Azure 无关),除非通过 WS-*,否则您还能如何使用 WIF?
    • 为此打开一个新问题。
    【解决方案2】:

    如果您只需要一个应用程序的自定义 IdP,使用成员资格提供程序进行表单身份验证就可以正常工作。如果您的自定义 IdP 成为其他应用程序和/或服务的 IdP,那么外部化此类功能的需求就会变得很明显。 WIF 可能是一种选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      相关资源
      最近更新 更多