Я создавал внутренний инструмент, чтобы помочь управлять в области AD в области AD для наших технологий. Одна из функций - это функция «сбросить пароль», которую можно использовать для генерации и установки пароля для пользователя.
vocation .. Внутреннее исключение: доступ отказан. (0x80070005
(e_accessdied)) < /p>
< /blockquote>
Отладка кода в Azure дает мне < /p>
Исключение. брошен:
''system.reflection.targetinvocationException 'в
system.directoryservices.dll
< /blockquote>
Я знаю, что мое приложение имеет доступ к моей рекламе с AZUR inloke в следующем коде.public async Task ResetPasswordAsync(string distinguishedName)
{
using var scope = _provider.CreateScope();
var siteSettingRepo = scope.ServiceProvider.GetRequiredService();
var ldapServerSetting = await siteSettingRepo.GetByNameAsync("LDAPServer");
if (ldapServerSetting == null || string.IsNullOrWhiteSpace(ldapServerSetting.SettingValue))
return new AdPasswordResetResult
{
Success = false,
ErrorMessage = "LDAPServer setting not found."
};
var ldapServer = ldapServerSetting.SettingValue.Trim();
return await Task.Run(() =>
{
try
{
using (DirectoryEntry rootEntry = new DirectoryEntry($"LDAP://{ldapServer}", _settings.Username, _decryptedPassword, AuthenticationTypes.Secure))
using (DirectorySearcher searcher = new DirectorySearcher(rootEntry))
{
searcher.Filter = $"(distinguishedName={distinguishedName})";
searcher.PropertiesToLoad.Add("mobile");
SearchResult result = searcher.FindOne();
if (result == null)
{
return new AdPasswordResetResult
{
Success = false,
ErrorMessage = $"User with distinguishedName '{distinguishedName}' not found."
};
}
DirectoryEntry entry = result.GetDirectoryEntry();
// Check for mobile
string? mobile = null;
if (entry.Properties["mobile"]?.Count > 0)
mobile = entry.Properties["mobile"][0]?.ToString();
// Generate new password
var newPassword = PasswordGenerator.GeneratePassphrase();
// Reset password in AD
entry.Invoke("SetPassword", newPassword);
entry.CommitChanges();
return new AdPasswordResetResult
{
Success = true,
MobileNumber = mobile,
NewPassword = newPassword
};
}
}
catch (COMException ex)
{
return new AdPasswordResetResult
{
Success = false,
ErrorMessage = $"COM Exception: {ex.Message} (0x{ex.ErrorCode:X})"
};
}
catch (Exception ex)
{
var innerException = ex.InnerException != null ? ex.InnerException.Message : "No inner exception";
return new AdPasswordResetResult
{
Success = false,
ErrorMessage = $"Password reset failed: {ex.Message}. Inner Exception: {innerException}"
};
}
});
}
< /code>
Я уверен, что это что -то в том, как лазурная связь, но для жизни я не могу найти какого -либо четкого направления. Исследования сообщают мне, что я не потенциален, LDAP против LDAPS, но не уверен, куда еще пойти с этим, и я бы признателен за любые руководящие>
Подробнее здесь: https://stackoverflow.com/questions/796 ... ure-webapp
Ошибка при сбросе пароля рекламы пользователя через Azure WebApp ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Уведомление о сбросе пароля или просто уведомление по электронной почте
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-