我使用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.");
}
}
答案 0 :(得分:2)
你应该抛出faultexception而不是返回它:
public object BeforeCall(string operationName, object[] inputs)
{
if (UserAuthenticToken.IsValidUser())
return null;
else
{
throw new FaultException("User is not authenticated.");
}
}