WCF 서비스의 구성을 감사하는 유틸리티를 작성하고 있습니다. 클라이언트에서 자격 증명을 제대로 전달하려면 WCF 서비스를 통해 SQL 백 엔드로 돌아가서 서비스 실행에 사용 된 도메인 계정을 "위임에이 사용자 신뢰"(속성 -> "위임") 설정으로 Active Directory에 구성해야합니다 " 탭).활성 디렉토리 사용자 계정의 위임 등록 정보는 어떻게 쿼리합니까?
C#을 사용하면 Active Directory에서이 탭의 설정에 액세스하는 방법은 무엇입니까? 지난 5 시간 동안 웹에서이를 추적하려고했는데 찾지 못했습니다. 여기
내가 지금까지 한 일이다 :using (Domain domain = Domain.GetCurrentDomain())
{ Console.WriteLine (domain.Name를);
// get domain "dev" from MSSQLSERVER service account
DirectoryEntry ouDn = new DirectoryEntry("LDAP://CN=Users,dc=dev,dc=mydomain,dc=lcl");
DirectorySearcher search = new DirectorySearcher(ouDn);
// get sAMAccountName "dev.services" from MSSQLSERVER service account
search.Filter = "(sAMAccountName=dev.services)";
search.PropertiesToLoad.Add("displayName");
search.PropertiesToLoad.Add("userAccountControl");
SearchResult result = search.FindOne();
if (result != null)
{
Console.WriteLine(result.Properties["displayName"][0]);
DirectoryEntry entry = result.GetDirectoryEntry();
int userAccountControlFlags = (int)entry.Properties["userAccountControl"].Value;
if ((userAccountControlFlags & (int)UserAccountControl.TRUSTED_FOR_DELEGATION) == (int)UserAccountControl.TRUSTED_FOR_DELEGATION)
Console.WriteLine("TRUSTED_FOR_DELEGATION");
else if ((userAccountControlFlags & (int)UserAccountControl.TRUSTED_TO_AUTH_FOR_DELEGATION) == (int)UserAccountControl.TRUSTED_TO_AUTH_FOR_DELEGATION)
Console.WriteLine("TRUSTED_TO_AUTH_FOR_DELEGATION");
else if ((userAccountControlFlags & (int)UserAccountControl.NOT_DELEGATED) == (int)UserAccountControl.NOT_DELEGATED)
Console.WriteLine("NOT_DELEGATED");
foreach (PropertyValueCollection pvc in entry.Properties)
{
Console.WriteLine(pvc.PropertyName);
for (int i = 0; i < pvc.Count; i++)
{
Console.WriteLine("\t{0}", pvc[i]);
}
}
}
}
은 "userAccountControl의"올바른 부동산 될 것 같지 않습니다. 나는 그것이 "Account"탭의 "Account Options"섹션에 묶여 있다고 생각하는데, 이것은 우리가 찾고있는 것이 아니지만 지금까지 가장 가까이에 있습니다.
이 모든 것에 대한 정당한 근거는 다음과 같습니다. QA 또는 생산 환경에서 서비스를 설정할 수있는 권한이 없으므로 필자의 서면 지침 (일부만 악독 되기만 함)과 함께 서비스를 감사 할 도구를 만들고 있습니다. setup (WCF 및 SQL)을 사용하여 설정이 올바른지 확인하십시오. 이렇게하면 서비스를 배포하는 사람이이 유틸리티를 실행하고 모든 것이 올바르게 설정되었는지 확인할 수 있습니다. 이로 인해 시간이 많이 걸리고 배포 중 다운 타임이 줄어 듭니다.