У меня есть интрасеть, которая получает текущий зарегистрированный пользователь через активный каталог. Когда пользователь заблокирован, они получают приглашение Windows, чтобы ввести свое имя пользователя и пароль. Есть ли способ для меня поймать это и перенаправить их на страницу, где их попросят снова ввести свои учетные данные или сообщить им, что их учетная запись может быть заблокирована и обратиться в службу поддержки?asp.net active directory intranet
0
A
ответ
0
В приложении, как только вы захватите пользователя, вошедшего в сделать IsAccountLocked метод ниже
public bool IsAccountLocked(string sUserName)
{
UserPrincipal oUserPrincipal = GetUser(sUserName);
return oUserPrincipal.IsAccountLockedOut();
}
public UserPrincipal GetUser(string sUserName)
{
PrincipalContext oPrincipalContext = GetPrincipalContext();
UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, sUserName);
return oUserPrincipal;
}
public PrincipalContext GetPrincipalContext()
{
PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, sDomain, sDefaultOU, ContextOptions.SimpleBind, sServiceUser, sServicePassword);
return oPrincipalContext;
}
Это использование System.DirectoryServices.AccountManagement для использования только System.DirectoryServices вы можете сделать это
public bool IsAccountLocked(DirectoryEntry oDE)
{
return Convert.ToBoolean(oDE.InvokeGet("IsAccountLocked"));
}
public DirectoryEntry GetUser(string sUserName)
{
//Create an Instance of the DirectoryEntry
oDE = GetDirectoryObject();
//Create Instance fo the Direcory Searcher
oDS = new DirectorySearcher();
oDS.SearchRoot = oDE;
//Set the Search Filter
oDS.Filter = "(&(objectClass=user)(sAMAccountName=" + sUserName + "))";
oDS.SearchScope = SearchScope.Subtree;
oDS.PageSize = 10000;
//Find the First Instance
SearchResult oResults = oDS.FindOne();
//If found then Return Directory Object, otherwise return Null
if (oResults != null)
{
oDE = new DirectoryEntry(oResults.Path, sADUser, sADPassword, AuthenticationTypes.Secure);
return oDE;
}
else
{
return null;
}
}
private DirectoryEntry GetDirectoryObject()
{
oDE = new DirectoryEntry(sADPath, sADUser, sADPassword, AuthenticationTypes.Secure);
return oDE;
}
для полной реализации вы можете пойти в http://anyrest.wordpress.com/2010/06/28/active-directory-c/ или http://anyrest.wordpress.com/2010/02/01/active-directory-objects-and-c/
Смежные вопросы
- 1. ASP.NET Active Directory Search
- 2. ASP.NET MVC - автоматически аутентифицировать пользователей Active Directory?
- 3. Ошибка аутентификации Active Directory asp.net
- 4. Поиск Active Directory с ASP.NET
- 5. Active Directory + IIS + SQL + ASP.NET
- 6. ASP.NET Active Directory Авто-вход
- 7. Поставщик роли Active Directory ASP.NET
- 8. Ограничить применение в группу Active Directory
- 9. Проверка подлинности Active Directory Active Directory
- 10. Проверка подлинности форм Active Directory Active Directory
- 11. Аутентификация Active Directory Active Directory и WCF
- 12. Active Directory
- 13. Active Directory
- 14. Active Directory + HTTP Authentication
- 15. C# Active Directory Library
- 16. Asp.net, аутентификация Active Directory не работает
- 17. Аутентификация Active Directory ASP.NET в одной форме
- 18. Аутентифицировать пользователя в Active Directory в ASP.Net
- 19. MVC ASP.Net local Active Directory Login
- 20. Интеграция Active Directory для удаления сайта asp.net
- 21. ASP.NET MemberhipProvider - SQL Server и Active Directory
- 22. Интеграция Active Directory на моем сайте asp.net
- 23. 401 Ошибка: Active Directory & Asp.Net MVC
- 24. ASP.NET: запретить использование определенных пользователей Active Directory
- 25. ASP.NET Active Directory Вложенная авторизация Проблема
- 26. ASP.NET 4.5 C# Доступ Active Directory Denied
- 27. ASP.NET MVC Identity и Active Directory
- 28. Неисправность Аутентификация пользователей ASP.NET против Active Directory
- 29. ASP.NET MVC-приложение, запрашивающее Active Directory
- 30. Доступ к Active Directory из приложения ASP.net
спасибо, я попробую попробовать – Migs