gpt4 book ai didi

c# - 如何在 WCF 服务上设置密码?

转载 作者:太空狗 更新时间:2023-10-29 21:47:10 26 4
gpt4 key购买 nike

我正在开发一个 WCF 服务,我们的其他软件会调用它来将错误信息发送到我们的数据库。问题是,因为它是在线服务,所以不安全,所以我想知道该服务是否可以请求密码(即,当我们调用该服务时,我们必须配置密码或类似的东西).

我用谷歌搜索了一下,但对于这么简单的事情来说,这一切似乎都太复杂了……你们能帮帮我吗?

编辑:

我的想法是通过我的软件进行身份验证,无需用户登录。

最佳答案

另一种选择是实现您自己的安全性。这是一个基本示例。

WCF 服务

在您的服务中,将 ServiceBehaviorInstanceContextMode 更改为 PerSession 并将 ConcurrencyMode 更改为 Single

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Single)]
public class SomeService : ISomeService
{
// ...
}

在您的服务中添加 UsernamePassword 属性。

public string UserName { [OperationContract] get; [OperationContract] set; }
public string Password { [OperationContract] get; [OperationContract] set; }

添加一个私有(private)方法来检查安全性。

public void CheckSecurity()
{
if ((this.UserName == null || this.Password == null) ||
this.UserName == "username" && this.Password == "password"))
{
throw new FaultException("Unknown username or incorrect password.");
}
}

然后在您的每个服务类构造函数方法中调用CheckSecurity方法。

public SomeServiceMethod1()
{
this.CheckSecurity();

// some method codes
}

客户端应用

在您的客户端应用程序代码中,为每个实例设置服务用户名和密码,或创建一个将为您执行此操作的静态类。

您也可以尝试在用户名和密码中使用加密来增加安全性。

请注意,这只是为您添加另一个可能满足您需求的选项,但您应该始终尝试使用 Microsoft 的处理方式。

关于c# - 如何在 WCF 服务上设置密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187031/

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