如果在IParameterInspector BeforeCall方法中失败,如何在wcf中限制Operation方法调用

时间:2014-04-16 08:51:12

标签: c# .net wcf

我使用IParameterInspector BeforeCall方法验证当前会话的用户,如果验证失败,它将抛出异常并且必须返回。 我能够验证它并抛出异常,我可以在AfterCall correlationState参数中看到它,但它仍在执行我从客户端调用的wcf方法。

是否有任何方法可以限制该方法调用未在IParameterInspector BeforeCall方法本身中点击wcf方法。

我的代码:

public object BeforeCall(string operationName, object[] inputs)
        {
            if (UserAuthenticToken.IsValidUser())
                return null;
            else
            {                    
                return new FaultException("User is not authenticated.");
            }
        }

1 个答案:

答案 0 :(得分:2)

你应该抛出faultexception而不是返回它:

public object BeforeCall(string operationName, object[] inputs)
        {
            if (UserAuthenticToken.IsValidUser())
                return null;
            else
            {                    
                throw new FaultException("User is not authenticated.");
            }
        }