특정 플러그인 사용 권한 및 메서드 보안 권한을 자동으로 테스트하는 보안 메커니즘을 구현하려고하는데이 작업을 수행하는 방법에 대해 조금만 고민해 왔습니다. 이 플러그인이 부여하는 모든 권한의 배열을 포함특성 사용법 확인 방법 사용 권한
params PluginPermission[] permission
:
내가 좋아하는 생성자 속성을 취하는 사용자 정의 MEF 메타 데이터 속성을 작성했습니다.
PluginPermission.cs
public enum PluginPermission
{
CreateUsers,
DeleteUsers,
ReadPassword,
WritePassword,
AddUsersToGroups,
AddGroups,
DeleteGroups
}
나는 또한 각각의 방법을 대상으로 실행되는 개인 방법에 필요한 권한에 시스템에게 하나 개 이상의 PluginPermission 객체를 취하는 RequiredPermissionAttribute를 작성했습니다 :
PluginPermission 클래스처럼 보인다 . 플러그인 메소드가 실행되지 않는 특정 방법에 필요한 권한이없는 경우 분명히
ILicensingManagement.cs
[RequiredPermission(PluginPermission.CreateUsers)]
bool AddUser(string userName);
:이처럼 플러그인의 인터페이스에 적용됩니다.
내가 붙어있는 것은 메서드가 실행되기 전에 실행되는 RequiredPermissionAttribute 클래스의 테스트 메서드를 실제로 얻는 방법과 메서드에 대한 사용 권한 요구 사항이 해당 플러그 인에 의해 충족되지 않으면 정상적으로 실행을 종료하는 방법입니다.
xUnit BeforeAfterTestAttribute를 살펴 보았지만 구현이 너무 구체적으로 보였으므로 솔루션에 도달하기 위해 소스 코드를 분리하려고 모호했습니다.
사실, 이미 일부 사용 권한과 wotnot을 확인하기 위해 리플렉션을 사용하고 있으며 필요한 메소드 권한에 대해 부여 된 클래스 수준 사용 권한의 테스트를 실제로 수행하는 로직을 주입하는 방법에 조금 갇혀 있습니다. 실제로 속성은 꽤 "벙어리"이며 꾸미는 것 이상입니다. – Jammer
플러그인이 필요하거나 수행 할 수있는 기능에 대해 사용자 보안 측면에서 어떤 것도 시행하지 않는 것은 아닙니다. 우리의 사용자 보안은 모두 LDAP에서 구현됩니다. 의견을 보내 주셔서 감사합니다. – Jammer