계정이없는됩니다 오류가 발생하지만 키 컨테이너의 권한에는 영향을 미치지 않습니다.시도는 키에 액세스 할 수 있도록 내가 프로그래밍 방식에서 NetworkService을 허용하기 위해 다음 코드를 사용하고 효과
그러나, 명령 행 도구를 사용하여 같은 일을 할 경우 aspnet_regiis, 완벽하게 작동합니다 :
aspnet_regiis -pa "MyEncryptionKey" "NetworkService"
나는 전체 관리자 권한으로 실행하는거야 - 나는 그 권한으로 실행하지 않는 경우는 예외입니다 던져. 또한 처음에 키를 생성 한 사용자로 실행 중입니다. 의 SID, S-1-5-20이 목록에 추가됩니다을 경우 aspnet_regiis와
S-1-5-18 -> LocalSystem
S-1-5-32-544 -> Administrators
S-1-5-5-0-135377 -> MyUser
:
주요 컨테이너는 항상 다음 액세스 규칙을 가지고있다. 코드에서 영향을 미칠 수 없습니다.
sap에서 보안 식별자를 문자열 형식으로 만들려고 시도했지만 AddAccessRule 대신 SetAccessRule을 사용하려고 시도했습니다.
어떤 아이디어가 코드에서 실제로이 ACL 목록에 영향을 주나요?
슬프게도 모든 Persist 메서드는 보호됩니다. –
CspParameters를 사용하여 공급자를 만들기 전에 보안을 수정해야하는 것처럼 보입니다. CspParameters는 RSACryptoServiceProvider에 전달 될 때 persist를 호출합니다. API를 구축하는 이상한 방법이지만, 문서에 따르면, 그것이 어떻게 작동하는 것 같습니다. 답변이 반영되도록 업데이트되었습니다. – jrista
그게 바로 궤도에있어. 위에 사용 된 CryptoKeySecurity 속성은 null이므로 throw됩니다. 새로운 것을 생성 할 수는 있지만 이미 존재하는 모든 권한을 없애 버립니다 (이것이 처음 실제 효과 였기 때문에 이제는 주키 스토어에서 잠겼습니다). 하지만 ... 키 저장소에서 키를 얻은 다음 RSA.CspKeyContainerInfo (공급자 이름 및 유형, 컨테이너 이름 및 CryptoKeySecurity 포함)에서 값을 복사하여 새 CspParamters를 만든 다음 수정하여 다른 RSA를 만들 수 있습니다 키 개체는 cspparameters를 사용하여, 그리고 완료, 모두 완료. simples ...? –