Asp.net 对不同的ADFS服务使用WIF

Asp.net 对不同的ADFS服务使用WIF,asp.net,wif,adfs,Asp.net,Wif,Adfs,我试图搜索这个,但没有找到任何好的答案,所以我将在这里提出一个问题 我有一个网站,几个不同的客户希望使用他们自己的ADFS服务访问该网站。然后,我的计划是在一个集中存储中连接到不同的ADFS服务(不是配置文件),并根据客户提供给网站的一些参数检索正确的服务,并将其与代码一起使用 但是,我找不到任何方法让一个网站使用多个联合服务。使用WIF和ADF这种方法可能吗?如果有,您是否有任何关于如何执行的链接或示例?这是可能的,您需要的是根据不同的用户选择创建不同的请求 我的做法是在应用程序中的某个地方有

我试图搜索这个,但没有找到任何好的答案,所以我将在这里提出一个问题

我有一个网站,几个不同的客户希望使用他们自己的ADFS服务访问该网站。然后,我的计划是在一个集中存储中连接到不同的ADFS服务(不是配置文件),并根据客户提供给网站的一些参数检索正确的服务,并将其与代码一起使用


但是,我找不到任何方法让一个网站使用多个联合服务。使用WIF和ADF这种方法可能吗?如果有,您是否有任何关于如何执行的链接或示例?

这是可能的,您需要的是根据不同的用户选择创建不同的请求

我的做法是在应用程序中的某个地方有一堆按钮/链接(可能在登录页面)。每个按钮专用于一个外部STS(在您的情况下为ADF)。单击按钮将创建对服务器的
wsignin1.0
请求,当ADFS返回到登录页面时,应该有一个代码块来尝试使用响应(SAML令牌)并为当前会话创建标识

这在过去更容易,因为WIF支持
WIF:FederatedPassiveSignIn
web控件。您只需要在页面上显示一个buch,每个控件都指向其ADF:

 <wif:FederatedPassiveSignIn id="adfs1" runat="server" Issuer="https://adfs1.adfs/adfs/ls" Realm="https://yourapp/loginpage.aspx" ImageUrl="adfs1.png/>
 <wif:FederatedPassiveSignIn id="adfs2" runat="server" Issuer="https://adfs2.adfs/adfs/ls" Realm="https://yourapp/loginpage.aspx" ImageUrl="adfs2.png" />

谢谢你的回答,我来看看你的代码!我的想法是将不同的ADFSURL存储在某个地方,并动态地使用这些URL进行身份验证。看起来您的源代码可能会执行类似的操作。在我把它标记为答案之前,我必须再深入一点,看看它是否解决了我的问题!慢慢来,但它确实满足了你的需求,我们每天都在做:)抱歉,花了这么多时间!虽然这不是我的最终解决方案,但它在找到解决方案的过程中帮了我很大的忙,所以我将把它标记为一个答案,谢谢!