我们有一个 WCF 服务,使用 webhttp 绑定。用户通过身份验证,然后调用一个方法。在该方法中,我们会检查与用户相关的各种设置以及特定于请求的一些信息,然后才能知道用户是否有权拨打电话。
由于这是 WCF,我认为我应该抛出某种 FaultException,但尚不清楚是否有最佳实践。
我的想法是,一旦我知道我将抛出什么异常,我会添加一个 IErrorHandler ,它将标头正确设置为 403。
两个问题:1)对于未经授权的请求是否有标准的 FaultException?即相当于403的http状态码?2)我应该能够处理我将抛出的异常并将响应代码更改为 403 吗?我可以通过自定义错误消息吗?我已经看到一些帖子使用捕获中的操作上下文设置标头不会传播到客户端。
理想情况下,我可以使用附加信息将状态设置为 403,例如“您必须是管理员组的成员才能添加用户”