2015-03-06 9 views
1

У меня есть привязка службы WCF с помощью netTcp с более чем 100 методами, я хотел бы защитить все методы на основе группы пользователей Windows.Как обеспечить полную службу WCF с помощью PrincipalPermission

Я знаю, что вы можете поместить атрибут [PrincipalPermission(SecurityAction.Demand, Role = "MyWindowsUserGroup")] перед каждым способом.

Нужно ли делать это индивидуально для каждого отдельного метода или есть способ по умолчанию использовать каждый метод в службе, защищенной этой же группой пользователей?

ответ

1

Вы можете добавить PrincipalPermission на уровне класса, а также способ.

// Before: 
public class AdministrationService : IAdminService 
{ 
    [PrincipalPermission(SecurityAction.Demand, Role = "Domain\Admin Service Admins")] 
    public bool DisableAdministrator(int userId) 
    { 
    } 

    [PrincipalPermission(SecurityAction.Demand, Role = "Admin Service Admins")] 
    public bool DeleteAdministrator(int userId) 
    { 
    } 
} 

// After: 

[PrincipalPermission(SecurityAction.Demand, Role = "Admin Service Admins")] 
public class AdministrationService : IAdminService 
{ 
    public bool DisableAdministrator(int userId) 
    { 
    } 

    public bool DeleteAdministrator(int userId) 
    { 
    } 
} 

Вы также можете определить несколько экземпляров, если хотите иметь несколько типов разрешений.

[PrincipalPermission(SecurityAction.Demand, Role = "Admin Service Admins")] 
[PrincipalPermission(SecurityAction.Demand, Role = "Domain\Domain Admins")] 
[PrincipalPermission(SecurityAction.Demand, Role = "Domain\Power Users")] 
public class AdministrationService : IAdminService 
{ 
    public bool DisableAdministrator(int userId) 
    { 
    } 

    public bool DeleteAdministrator(int userId) 
    { 
    } 
} 
+1

Hi Dominic, спасибо, что смотрит на место. – dave

 Смежные вопросы

  • Нет связанных вопросов^_^