小编Lal*_*rma的帖子

客户端的WCF Web服务自定义异常错误

我想抛出自定义异常,如一些错误消息作为WCF Web服务的异常,并在客户端应用程序中尝试接收此异常错误消息调用Web服务方法.

如何从WCF Web服务抛出自定义异常并在客户端收到相同的异常错误.

WCF Web服务方法:

    public bool Read()
    {
        if (IsUserValid() == false)
        {
            throw new Exception("Authorized user");
        }
    }
Run Code Online (Sandbox Code Playgroud)

在客户端

try
{
   _client.Read();
}
catch (Exception e)
{
   MessageBox.Show(e.Message);
   return;
}
Run Code Online (Sandbox Code Playgroud)

结果:始终将错误消息作为例外**即

"System.ServiceModel.FaultException:由于内部错误,服务器无法处理请求.有关错误的更多信息,请在服务器上启用IncludeExceptionDetailInFaults(来自ServiceBehaviorAttribute或配置行为)以发送异常信息返回到客户端,或根据Microsoft .NET Framework 3.0 SDK文档打开跟踪并检查服务器跟踪日志."

这是代码抛出异常但不返回与从WCF Web服务抛出的异常错误相同的错误消息

请建议

wcf

20
推荐指数
2
解决办法
3万
查看次数

基于AD组的WCF Web服务身份验证

我有一个由C#客户端应用程序使用的WCF Web服务,我还有4个组存储在Active Directory中.客户端应用程序应通过传递登录凭据来连接此Web服务.

需求:

  1. 基于存储在AD(Active Directory)中的Windows用户凭据组限制Web服务功能
  2. 将特定用户凭据从客户端应用程序传递到此Web服务

题:

如何在连接到此Web服务时对登录用户进行身份验证或验证,将调用哪个事件处理函数来验证登录的用户凭据.

如果有人知道这个,请告诉我

service wcf

5
推荐指数
1
解决办法
9344
查看次数

基于用户组限制 WCF Web 服务功能

我有一个由 C# 客户端应用程序使用的 WCF Web 服务。我还在 Active Directory 中存储了 4 个组。客户端应用程序正在传递用户凭据以连接此 Web 服务。

Web 服务公开多个 API 或方法供客户端应用程序访问,如下所示:

    [OperationContract]
    bool Read();


    [OperationContract]
    bool Write();
Run Code Online (Sandbox Code Playgroud)

Read() 方法应该可供所有客户端访问

只有属于 Active Directory 维护的特定 Windows 用户组的用户才能访问 Write() 方法。

问题:我们如何根据客户端在 AD 中维护的用户组来过滤或限制客户端暴露的接口或方法?


jrista,感谢您的回复。我尝试了与 PrincipalPermission 相同的指令,如下所示:

[PrincipalPermission(SecurityAction.Demand, Role = "Readers")]
[OperationContract]
bool Read();

[PrincipalPermission(SecurityAction.Demand, Role = "Writers")]
[OperationContract]
bool Write();
Run Code Online (Sandbox Code Playgroud)

但它不起作用。Read 组用户也可以调用 Writer() 方法,Writer 组用户也可以调用 Write() 方法。

我想告诉你的一件事是,我在 web.config 文件中使用 BasicHttpBind,如下所示:

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBind">
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows" proxyCredentialType="Windows" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <services> …
Run Code Online (Sandbox Code Playgroud)

service wcf

5
推荐指数
1
解决办法
7571
查看次数

标签 统计

wcf ×3

service ×2