Как реализовать проверку подлинности Windows в проекте ServiceStack на ASP.NET MVC4?
Я начал с глобального фильтра запросов, добавленного в AppHost
:
private void ConfigureAuth(Funq.Container container)
{
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
var user = HttpContext.Current.User.Identity;
if (!user.IsAuthenticated ||
!user.Name.Contains(_myTestUser)) //todo: check username here in database (custom logic) if it has access to the application
httpResp.ReturnAuthRequired();
});
}
Это открывает диалоговое окно входа в систему, которое, если оно введено правильно (имя пользователя существует и введен правильный пароль, а также значение myTestUser
), приводит к успешному ответу.
Если что-то не так, снова отображается диалоговое окно входа в систему. - Это звучит хорошо для меня.
Но после повторного ввода правильного пользователя в это второе окно входа он перестает работать. Диалог открывается снова, если его снова неправильно. В функции фильтра нет точки останова.
Любая идея, что может вызвать это?
Вот что я добавил в web.config:
<authentication mode="Windows"/>
<authorization>
<deny users="?" /> <!--only allow authenticated users-->
</authorization>
Я хочу полностью заблокировать сайт и разрешить доступ к указанным пользователям Windows в базе данных только с их конкретными разрешениями (ролями). Мне нужно реализовать пользовательскую логику для доступа к "списку пользователей и ролей". Возможно, есть другой способ сделать это в MVC4/ASP.NET?