gpt4 book ai didi

c# - 通过 WCF REST 服务中的 header 进行身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:48 24 4
gpt4 key购买 nike

我是 WCF 服务的新手,目前正在测试一些东西。

我有一点 REST API,它有几个方法。其中一些需要用户上下文( session ),而另一些则不需要。在登录时,每个用户都会获得一个 session token 。客户端应通过 HTTP header 在每个请求中提供此 token 及其用户 ID。

目前,我编写了一个方法来获取这两个 header 并验证 session ,在每个需要用户上下文的方法上调用它。如果 API 变得更大,这似乎有点令人讨厌。

有更好的方法吗?

最佳答案

您可以利用以下解决方案:

  1. 分别为客户端和服务派生 IClientMessageInspector/IDispatchMessageInspector 的自定义类。然后将其实例添加到 MessageInspectors。使用 messageInspector 的优势在于它适用于单个端点,因此无论暴露多少个端点(SOAP 和 REST),messageInspector 都只能与一个端点相关联。无论何时接收或发送消息,都会分别调用 AfterReceive 或 BeforeSent 方法。在那里您检索 header ,如果 token 与任何预期不匹配,您可以抛出异常。这种出路提供了暴露的契约(Contract)和背景检查(例如 token 验证)之间的分离。
  2. 派生 IOperationInvoker 的自定义类。在自定义操作调用程序中,您可以显式调用方法,因此您可以在调用任何方法之前检查 header (OperationContext.Current.IncomingMessage)。

    我只提出了概念,大量的信息和例子可以在互联网上找到。

关于c# - 通过 WCF REST 服务中的 header 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34300678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com