네트워크 디렉토리를 통해 반복하고 각 파일/폴더와 관련된 사용자/그룹 이름 (사용 권한)을 출력하려고합니다. 나는 SID가 돌아 왔지만 "S-1-5-32-544"가 아닌 "group_test"같은 이름을 원합니다. Some or all identity references could not be translated.
SID를 사용자 이름/그룹으로 변환 하시겠습니까?
그것은 나타납니다 -
(NTAccount)((SecurityIdentifier)rule.IdentityReference).Translate(typeof(NTAccount)).Value
나는이 예외를 얻을 -이 대신 사용하는 경우 나, 위의 코드에서하지만 foreach 루프에서 SID의를 얻을
var files = Directory.GetFiles(path, "*.*", SearchOption.TopDirectoryOnly);
foreach (var f in files2)
{
var fileInfo = new FileInfo(f);
var fs = fileInfo.GetAccessControl(AccessControlSections.Access);
foreach (FileSystemAccessRule rule in fs.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
var value = rule.IdentityReference.Value;
Response.Write(string.Format("File: {0} \t Usergroup: {1} <br/>", fileInfo.Name, value));
} }
- 여기 내 코드입니다 Translate 메서드가 원격 공유에서 작동하지 않습니다. SID의 실제 이름은 어떻게 검색합니까? 원격 서버에 LDAP가 없습니다.
감사합니다.