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