Код у вас должен быть в порядке - он работает для меня, никаких проблем вообще.
Однако: вы не говорите нам, что вы вводите для domain_name
здесь:
PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, "domain_name");
или userId
здесь:
UserPrincipal p = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, UserId);
domain_name
должен быть в "старом" стиле NetBIOS, например FABRIKAM
- нет DNS-стиля, например fabrikam.com
, AD-стиля, например dc=fabrikom,dc=com
, и даже полного пути LDAP.
userId
должно быть действительным именем учетной записи SAM, например, Максимум. только из 20 символов, букв и цифр (за исключением нескольких допустимых специальных символов).
Вы соответствуете этим требованиям ??