Я пытаюсь загрузить себя в пространство имен System.DirectoryServices.AccountManagement
, чтобы решить другую проблему, с которой я столкнулся.В сети я хочу включить флаг «ChangePasswordOnNextLogon» в объявлении, и это пространство имен сделало его простым.
Поэтому я попытался использовать его с теми же пользователями и паролями, которые я использую для входа в систему с помощью AdMembershipProvider
.
PrincipalContext oPrincipalContext =
new PrincipalContext(ContextType.Domain, "10.1.XXX.XXX", "DC=XXXXXXXX,DC=ORG",
ContextOptions.SimpleBind, AUserThatWorks, APasswordThatWorks);
UserPrincipal oUserPrincipal =
UserPrincipal.FindByIdentity(oPrincipalContext, AdUserName);
// we need to see if they can authenticate before changing password,so we have to turn this off manually. - EWB
oUserPrincipal.RefreshExpiredPassword();
bool b = oPrincipalContext.ValidateCredentials( AdUserName, AdPassword );
if (!b)
oUserPrincipal.ExpirePasswordNow();
return b;
Но когда дело доходит до FindByIdentity
, я получаю ошибку "неверный пользователь или пароль".
Поскольку пользователь работает в другом месте, я полагаю, что это должен быть один из других параметров дляполучить основной контекст.У кого-нибудь есть намеки для меня?Я попытался поместить LDAP вместо URL, но затем он не смог подключиться.Я в тупике.
Спасибо,
Cal-