我正在创建一个新的 WCF 服务,它需要“工作”许可证。我想知道如何在不对服务契约(Contract)的每个操作进行许可证检查的情况下实现这一点。
基本上我想在服务启动时进行许可证检查。如果我在服务契约(Contract)构造函数中实现许可证检查,恐怕在 IIS 中托管时它会表现得很奇怪(这将是主要的主机类型)。
关于如何解决这个问题的任何想法?
最佳答案
如果没有 IIS 中的 HTTP 模块之类的东西,我不确定是否有一种“干净”的方法可以做到这一点。您可以通过将构造函数添加到服务文件并执行以下操作以“肮脏”的方式执行此操作:
Public Sub New()
If notLicensed then
throw new Exception("Not Licensed")
End if
End Sub
这将导致许多异常被传递回客户端(实际上每次创建服务实例时都会检查),但它不需要您弄乱您的服务方法。也就是说,希望其他人有更好的答案。 :)
关于.net - 如何在 IIS 托管的 WCF 服务中实现许可证控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4804423/