Атрибут PrincipalPermission в сервисном контракте

Есть ли техническая причина, по которой PrincipalPermission не может быть помещен в интерфейс контракта на обслуживание? Он работает только в классе, реализующем контракт, или непосредственно в методах класса.

Это не работает

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

Но это работает, если я помещаю атрибут в соответствующий метод в классе, реализующем IMyService.