gpt4 book ai didi

c# - 识别 WCF 客户端 ID

转载 作者:太空狗 更新时间:2023-10-29 19:56:27 25 4
gpt4 key购买 nike

我有一个公开多个业务方法的 WCF Web 服务。我还有两个客户端 - 一个 asp.net GUI 和一个数据迁移应用程序,它们都连接到 wcf 后端以调用各种业务事务。

我需要我的后端能够识别和区分哪个 wcf 客户端调用了一些变体逻辑。

有没有办法让我的 WCF 服务能够识别连接到它的客户端?还有一种方法可以使用签名 key 来防止客户端欺骗他们的身份吗?

最佳答案

您可以通过自定义 header 解决此问题。

您可以在客户端应用程序的配置文件中添加自定义 header 作为端点的一部分。然后,您将使每个客户的自定义 header 不同。例如,在 ASP.NET 版本中:

        <endpoint
name="basicHttpEndpoint"
address="http://localhost:8972"
binding="basicHttpBinding"
contract="MySeriveContractLib.IMyService"
>
<headers>
<ClientIdentification>ASP_Client</ClientIdentification>
</headers>
</endpoint>

然后服务可以像这样检查 header 值:

public void MyServiceMethod()
{
var opContext = OperationContext.Current;
var requestContext = opContext.RequestContext;
var headers = requestContext.RequestMessage.Headers;
int headerIndex = headers.FindHeader("ClientIdentification", "");
var clientString = headers.GetHeader<string>(headerIndex);
if clientString=="ASP_Client"
{
// ...
}
else
{
// ...
}
}

关于c# - 识别 WCF 客户端 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3277256/

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