使用表单身份validation为AD FS配置WIF

我们有一个ASP.NET Web Forms(.Net 3.5)网站应用程序使用表单身份validation。 该应用程序具有不同的自定义身份validation服务,使用不同的SSO方法(例如CAS)来validation用户,这些是针对不同的客户端实现的。 现在要求实现基于AD FS的身份validation服务,而不对表单身份validation配置进行核心更改。

我的问题:

  1. 如何在.Net 3.5网站中配置SAM
  2. 而不是重定向到STS,是否可以将用户名和密码从我的登录页面传递到AD FS代理并获得saml响应?
  3. 我的目的是从saml响应中读取自定义属性值(例如,雇员编号),然后继续使用当前的身份validation模块。 可能吗?

此问题基于AD FS和表单身份validation中的讨论,将非常感谢任何帮助。

  1. 我在上一个问题中作为答案发布的片段应该或多或少地在.net 3.5下工作(一些api已经改变但没有那么多,所以你无法弄清楚)

  2. 虽然这是可能的,但我想这是一个坏主意。 这是因为ADFS可以配置为使用除用户名/密码之外的其他一些身份validation方法。 例如,他们可以启用Windows集成身份validation。 或者他们可以将身份validation委托给另一个使用双因子身份validation的提供者,该提供者涉及文本消息。 所有这些意味着遵循被动 ws-fed更加可靠,您的应用程序会重定向到提供程序的登录页面,而不是将应用程序收集的用户名/密码传递给提供程序。

  3. ClaimsIdentity中的SAMLvalidation最终使用ClaimsIdentity来表示令牌中的主体。 这是您只需枚举声明并搜索所需的声明:

     var identity = .. Validate saml token .. foreach ( var claim in identity.Claims ) if ( claim.Type == employee number claim type ) Use the claim to establish a local forms auth session