自定义 UserNamePasswordValidator 可以向 WCF 会话添加内容吗?

2023-12-03

相关这个问题,我正在自定义 UserNamePasswordValidator 中实例化与内部 API 的连接。我可以将其存储在某处,以便我可以在该用户会话中的未来调用中使用它吗?

这类似于这个问题,但我没有使用 IIS,所以我不能使用 HttpContext.Current(或者我可以吗?)。

Update:一些上下文:我们的内部 API 通过 COM 对象公开,该对象公开Login方法。而不是拥有一个Login方法在我的服务接口中,我有一个自定义UserNamePasswordValidator,它调用 COM 对象上的 Login 方法。

因为实例化 COM 对象并登录的成本很高,所以我想在我的服务方法中重新使用现在登录的 COM 对象。


是的,它可以。你需要:

  • 一个习俗ServiceCredentials返回自定义的实现SecurityTokenManager.
  • 一个习俗SecurityTokenManager返回自定义的实现CustomUserNameSecurityTokenAuthenticator.
  • 你的定制CustomUserNameSecurityTokenAuthenticator需要覆盖ValidateUserNamePasswordCore,并且应该添加一个自定义实现IAuthorizationPolicy.
  • 你的实施IAuthorizationPolicy应该实施Evaluate,此时它可以开始将内容放入 WCF 上下文中。
  • 更换evaluationContext["PrimaryIdentity"]值与PasswordIdentity或自定义IIdentity.
  • 更换evaluationContext["Principal"]值与PasswordPrincipal或自定义IPrincipal.
  • 更新evaluationContext["Identities"]集合来替换GenericIdentity实例与您的自定义实例。

通过这样做,您可以拥有一个自定义IPrincipal其中包含一些额外信息的实现。

有关更多详细信息,请参阅this.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 UserNamePasswordValidator 可以向 WCF 会话添加内容吗? 的相关文章

  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • 从一个客户端使用多个 WCF 服务

    我的网络场有 10 台运行 IIS 的服务器 在每台服务器上我都有相同的网站和相同的 WCF 服务 它公开了一些用于读取 删除缓存 会话 应用程序变量和其他内部数据的功能 在其他一些 Web 服务器上 我有一个 管理 Web 应用程序 它是
  • 没有端点在 net.pipe://localhost/ 上监听

    我有两个 WCF 服务托管在 Windows Server 2003 计算机上的单个 Windows 服务中 如果 Windows 服务需要访问任一 WCF 服务 例如发生定时事件时 它将使用公开的五个命名管道端点之一 不同的服务协定 该服
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 使用 WCF 支持“application/x-www-form-urlencoded”发布数据的最佳方式?

    我正在基于 W3C 规范构建 WCF 服务 该规范定义了接受 application x www form urlencoded 发布数据的 RESTful Web 服务端点 默认情况下 WCF 不支持这种类型的消息编码 我发现了许多创建如
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • WCF 仅跟踪失败的请求?

    我想将跟踪信息保存到 svclog 文件中 但仅限于失败的请求 这可能吗 如果是这样 具体如何 我有一个每分钟调用数百次的 WCF 服务 在极少数情况下 客户端会收到错误 500 该错误发生在 WCF 内运行的代码边界之外 通常是安全问题
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 使用 XML 的 WCF 请求验证

    我有一个WCF使用 Net 4 0框架的SOAP Web服务 我在用contract first方法 即 服务代码是使用 WCSF Blue 工具从手写 WSDL 生成的 我对请求消息有以下要求 如果价格小于 100 则不得有税项 但如果大
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • rabbitmq 的 REST API

    有没有办法从 ajax 向 RabbitMQ 发送数据 我的应用程序由数千个 Web 客户端 用 js 编写 和 WCF REST 服务组成 现在我试图弄清楚如何为我的应用程序创建可扩展点 这个想法是有一个rabbitmq实例 它从放置在一
  • 为什么处置/关闭 WCF 客户端代理很重要

    我听说即使在以下情况下也必须处置 或关闭 WCF 客户端代理 你没有使用会话 没有需要确定性清理的非托管资源 例如打开的套接字 例如 当使用具有默认绑定配置的 BasicHttpBinding 时 即使在流行的网页中也应该没问题 对吧 va
  • 我可以在 Windows 服务中托管(自托管)WCF 服务并通过 http 公开它吗?

    我是 WCF 新手 这可能吗 如果通过外部 Web 应用程序使用它 最好使用 IIS 和 http 即由 ASP NET MVC 应用程序托管的服务 吗 是的 您可以在 Windows 服务中托管 WCF 服务 http msdn micr
  • WCF流模式确实很慢

    我想知道为什么流模式下的 WCF 与缓冲模式相比确实很慢 基本上 我从服务器读取大量数据 数据库访问 然后通过 WCF 将大量数据传输到其他客户端 我通过比较两种不同的传输模式进行了一些测试和基准测试 我创建了 2 个端点 第一个正在使用t
  • 从 asp.net mvc ajax 调用 wcf

    我有两个应用程序 第一个是 WCF 服务 第二个是 asp net MVC 3 应用程序 在 WCF 应用程序中我有一个界面 ServiceContract public interface IService1 OperationContr
  • 堆内存问题

    有一个 WCF 自托管服务必须在 99 的时间内正常工作 有时我们会遇到这样的记忆问题 但问题发生后 服务一切正常 我们该如何处理这个问题 任何关于提供能够在不同情况下生存的强大服务的提示和要点都非常受欢迎 我不太确定问题出在哪里 但内存泄
  • WCF 数据服务错误处理

    我创建了一个带有服务操作的WCF数据服务 我想生成一种业务异常 我尝试生成WebFaultException但我不知道当服务操作抛出此错误时如何在客户端捕获此错误 这是我模拟异常的服务操作 WebGet public void Genera
  • WCF 回调通道被过早处置?

    我的应用程序正在使用带有回调通道的 net tcp WCF 服务 由于某种原因 我无法发送事件回调 这就是我正在做的事情 所有代码都在服务器端 初始化时 OperationContext Context get protected set
  • 如何在2.0构建的应用程序中使用WCF wsHttpBinding服务?

    WCF 服务正在使用 wsHttpBinding 绑定运行 将使用 WCF 服务的应用程序不符合 WCF 或者换句话说 它位于 Framework 2 0 之上 我无法在此应用程序中使用 ServiceModel 因为只有 3 5 支持 S

随机推荐