- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 ASP.NET Web 应用程序(在 .NET 4.5 上运行)。它目前正在进行表单例份验证。我们已经设置了一个具有多个联合的 ADFS 3 服务器,一些是内部的,一些是外部的(客户 STS),我们希望将 Web 应用程序配置为使用主动身份验证模型。如果我理解正确,这意味着我们将继续在我的 Web 应用程序中使用登录表单,它将收集用户的凭据,然后向我们的 ADFS 服务器发送安全 token 请求。 token 请求可能会告诉 ADFS 将请求发送到哪个联盟。如果一切顺利,我会从 ADFS 取回一个 token ,对其进行验证,并构建一个 ClaimsPrinciple 并从那里开始。
现在,在那个背景下,我遇到的问题是如何在 .NET 4.5 中将 token 请求发送到 ADFS。我见过的每个示例,尽管被标记为适用于 .NET 4.5,但都使用 WIF 中的旧 UserNameWSTrustBinding 类。这已被弃用并且不存在于 4.5 中。 Web 搜索“UsernameWSTrustBinding 4.5 equivalent”没有结果。我见过一个人构建他自己的类来复制功能,但我不相信这是必要的。我有一种预感,这里某处有一个类,我应该将其用于 WSTrustChannelFactory 中的绑定(bind),但我找不到它。或者,也许整个 WSTrustChannelFactory 模式也已过时(但为什么它会包含在 .NET 4.5 中)?
谁能提供一段代码,甚至阐明您应该如何在 .NET 4.5 中进行主动身份验证?
最佳答案
到目前为止,我最好的想法是检查用户 cookie 中的用户名(如果存在)或在 cookie 不存在时从常规登录表单检查用户名。有了这些信息,我可以确定是否需要将它发送给 IdP。在需要发送给 IdP 的情况下,我可以构建一个请求 URL 并重定向。
WSFederationAuthenticationModule instance = FederatedAuthentication.WSFederationAuthenticationModule;
SignInRequestMessage request = instance.CreateSignInRequest(Guid.NewGuid().ToString(), instance.Realm, true);
request.AuthenticationType = "urn:federation:authentication:windows";
Response.Redirect(request.WriteQueryString());
当然,我可以使用适当的 .HomeRealm 值或 .AuthenticationType 调整该请求,以跳过 HRD 过程,然后,它们将被发送回经过身份验证并具有适当声明身份的应用程序。
这对我来说不是完美答案的一个原因是,如果用户以前从未登录过,或者禁用了 cookie,并且根据联盟的不同,他们有可能拥有登录两次。也就是说,一次到应用程序的登录表单,一次到 ADFS 表单。这就是为什么我希望能够以某种方式以编程方式发送请求而不是重定向。这样我大概可以发送应用程序已收集的用户名和密码,而无需在 ADFS 再次收集它们。
因此,我不会将其标记为答案。我想坚持得更好。
关于c# - ADFS 主动身份验证 .NET 4.5(后 WIF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22054739/
我有一个数组列表。 ArrayList arrayList = new ArrayList<>(); arrayList.add("timestamp"); arrayList.add("Code")
我想知道如何控制 Navlink 的类名,如果实际路径是 X,则 NavLink 的类是事件的。我在使用 Laravel 和简单的 bootstrap 之前做过它,但我不知道如何用 React 和 R
我的单页网站目前使用箭头键平滑滚动到 anchor 。问题是当您滚动到每个部分时,悬停的链接不会跟随每个部分。它仅遵循您的箭头键命令。我怎样才能改变这个?这是当前网站 ( http://www.jon
我们有一个主动/被动拓扑,其中有两个具有共享原始存储的 x86 复合体,其中在给定时刻只有一个节点可以访问共享存储(也称为主动节点)。如果主动节点发生故障转移,被动节点将启动接管并成为可以访问共享存储
有源 GPS 会消耗多少电量?没有 gps 导航器软件的开销。秒我想每 2 分钟对 gps 进行一次采样并将其保存到文件中。这将花费我多少电池电量? 我的生命周期会缩短 10% 吗? 20%? ..?
AWS今年针对主动-被动设置(全局数据存储)引入了跨区域复制。这意味着有一个用于读取/写入的主Redis群集和一个用于读取的辅助群集。 就我而言,我们想在不同区域中使用 Active-Active R
我正在使用斯坦福标记器来确定词性。但是,我想从文本中获取更多信息。是否有可能获得更多信息,例如句子的时态或是否处于主动/被动状态? 到目前为止,我使用的是非常基本的 PoS 标记方法: List> t
我尝试将 SSL 与 Active MQ 创建的 JMX 连接器一起使用,但没有成功。我能够让 SSL 与 JVM 平台 JMX 连接器一起工作,但这需要存储 keystore 和信任库密码明文,这对
RFC 1006 TCP 连接中主动连接和被动连接有何区别? 最佳答案 这里有解释:https://www.rfc-editor.org/rfc/rfc793 A passive OPEN reque
在 MarkLogic 7 中,副本是主动-主动还是主动-被动? 最佳答案 您是在询问本地磁盘故障转移(又名林复制)、数据库复制还是灵活复制? 事实上,这三个都是为主动-被动使用而设计的:换句话说,单
我正在使用 Windows Azure 网站和 Web 作业。 我有一个控制台应用程序,用于每晚下载 FTP 文件。他们最近从被动 FTP 切换为主动 FTP。我对此没有任何控制权。 所附代码在我的计
我是 JNDI 和 JMS 技术的初学者。 我的 JNDI 文件为: java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQIn
我使用 Active Android在我的项目中。试图了解更多关于它的信息,特别是关于表项属性的信息 - 类似于 ForeignKeyAction。 如果发生删除操作,我希望我的模型只删除它自己,而不
主-主双活mysql复制如何处理唯一键值。对于主键值,我们可以设置 auto_increment_increment 和 auro_increment_offset 参数以避免主键 auto_incr
我是 Linux 新手,我的应用程序在 Windows 上运行了一段时间,对于文件传输,我们使用第三方 sftp,它在主动和被动模式下都运行良好。 现在我正在迁移我的应用程序以支持 Linux 操作系
我在使用 SymmetricDS(开源版本)在 2 个 Postgres 服务器之间复制数据时遇到问题。以下是了解我的问题的相关信息: 我已经用 Vagrant 部署了 3 个服务器: symmetr
我们可以对 Azure SQL 数据库进行被动只读异步实时同步,以实现灾难恢复。 但我们的要求是在两个事件读写数据库之间实现实时同步,以便为世界不同地点的客户提供低延迟。 例如: I'm provid
我们可以对 Azure SQL 数据库进行被动只读异步实时同步,以实现灾难恢复。 但我们的要求是在两个事件读写数据库之间实现实时同步,以便为世界不同地点的客户提供低延迟。 例如: I'm provid
在我的 TCP 服务器上,我希望有: 非阻塞被动套接字具有非阻塞accept(); 接受连接后,我想执行一些身份验证,例如验证客户端提供的 ID 和密码。所以我有明确定义的协议(protocol),我
我的应用中有 anchor 链接。如果 anchor 链接处于事件状态,如何使事件样式发挥作用。 AnchorLink 最佳答案 对于当前事件链接的样式,您可以为参数 activeClassName
我是一名优秀的程序员,十分优秀!