Atributo PrincipalPermission no contrato de serviço

Existe uma razão técnica pela qual uma PrincipalPermission não pode ser colocada em uma interface de contrato de serviço? Ele só funciona na classe que implementa o contrato ou diretamente nos métodos de classe.

Isso não funciona.

[ServiceContract]
public interface IMyService
{
    [PrincipalPermission(SecurityAction.Demand, Role="Admin")]
    [OperationContract]
    void MyFunction(string str);
}

Mas funciona se eu colocar o atributo no método correspondente na classe que implementa o IMyService.

questionAnswers(2)

yourAnswerToTheQuestion