Что лучше всего подходит для расширения функций входа в систему C1. Хотелось бы расширить возможности для текущего процесса входа в систему, заменив аутентификацию паролем многофакторной аутентификацией. Мне интересно узнать ключевые понятия и перехватчики в C1, чтобы разрешить аутентификацию пользователя в C1 после завершения многофакторной аутентификации.Расширение функциональности входа в систему
0
A
ответ
0
Вы рассматривали обсуждение http://compositec1.codeplex.com/discussions/268428? Здесь приведен пример кода для класса, реализующего интерфейс ILoginProvider
, который вызывается при аутентификации комбинации имени пользователя и пароля.
public class LDAPLoginProvider : IFormLoginProvider
{
public bool CanSetUserPassword
{
get { return false; }
}
public bool CanAddNewUser
{
get { return false; }
public bool UsersExists
{
get { return DataFacade.GetData<IUser>().Any(); }
}
public IEnumerable<string> AllUsernames
{
get { return (from u in DataFacade.GetData<IUser>() select u.Username).ToList(); }
}
void SetUserPassword(string username, string password)
{
throw new NotImplementedException();
}
void AddNewUser(string userName, string password, string group)
{
throw new NotImplementedException();
}
LoginResult Validate(string username, string password)
{
var user =
(from u in DataFacade.GetData<IUser>()
where String.Compare(u.Username, username, StringComparison.InvariantCultureIgnoreCase) == 0
select u).FirstOrDefault();
if (user == null)
{
return LoginResult.UserDoesNotExist;
}
bool loginIsValid = false;
try
{
var entry = new DirectoryEntry("LDAP://domain.com", username, password);
object nativeObject = entry.NativeObject;
loginIsValid = true;
}
catch (DirectoryServicesCOMException ex)
{
//not authenticated; reason why is in ex
}
catch (Exception ex)
{
//not authenticated due to some other exception
}
return loginIsValid ? LoginResult.Success : LoginResult.IncorrectPassword;
}
}
Здесь пользователи все еще должны быть созданы в C1, но пароли проверяются на внешний источник, здесь - сервер LDAP.
Смежные вопросы
- 1. Расширение функциональности в Enum
- 2. Расширение функциональности Rails двигателей
- 3. Расширение функциональности мостов Rails
- 4. Расширение функциональности Debug Eclipse
- 5. Расширение функциональности функции Javascript
- 6. Расширение функциональности C#
- 7. Расширение функциональности диаграммы в SSRS
- 8. Расширение функциональности для объекта PHP
- 9. Swift: расширение функциональности функции print()
- 10. Расширение функциональности всех реализаций интерфейса?
- 11. Расширение функциональности ядра Laravel 5
- 12. Расширение функциональности GotoAnything Sublime Text
- 13. Расширение функциональности Element и ElementTree
- 14. Расширение функциональности Magic Mouse: мне нужен kext?
- 15. Расширение функциональности массива int в OCaml
- 16. Расширение функциональности модели в смонтированных рельсах двигателя
- 17. Изменить кнопку входа в систему Facebook от входа в систему для входа в систему?
- 18. Почему слэш после входа в систему после входа в систему.
- 19. FOSUserBundle: два шаблона входа в систему для входа в систему
- 20. URL-адрес для входа в систему для входа в систему
- 21. redirect после входа в систему для входа в систему
- 22. Форма входа в систему для входа в систему
- 23. ArrayList Ошибка входа в систему для входа в систему
- 24. Ошибка входа в систему
- 25. Ошибка входа в систему
- 26. Ошибка входа в систему
- 27. Ошибка входа в систему
- 28. Ошибка входа в систему?
- 29. Идентификатор входа в систему
- 30. Ошибка входа в систему