我有一个包含多个操作的 WCF 服务。每个操作都有“PrincipalPermission”标签,如下所示:
[PrincipalPermission(SecurityAction.Demand, Role = "Administrator")]
public ProductsDto GetAllProducts()
{
// Do operation here ...
}
问题是 - 如果用户不是“Administratir”角色的一部分 - 服务会抛出异常
请求主体权限失败
这会将客户端的通道破坏为“故障”状态。
我希望能够以某种方式捕捉到这一点并向客户发送“故障”消息,
这样客户就知道他试图做他不应该做的事情,而不会导致通道出错!
我尝试在操作中使用“try-catch”块,但没有帮助。异常发生在操作本身的“外部”。
我该如何解决这个问题?