Безопасность. Как ограничить вход пользователям по IP, порту или домену

Задача - ограничить доступ некоторой группе пользователей вход на сайт по домену или IP. 

Для этого используем процедуру falcon_afterLogin в ней в @parameters есть параметры domain, userIP, userPort. Процедура выполняется после ввода правильных логина и пароля на странице входа (но до авторизации). 

На основе них решаем есть ли доступ у пользователя и возвращаем правильный доступ (Result 0 или 1).

ALTER PROCEDURE [dbo].[falcon_afterLogin]
	@parameters ExtendedDictionaryParameter READONLY,  -- userGuid, langID, domain, userIP, userPort
	@username nvarchar(32)
AS
BEGIN
	declare @port int
	select @port = try_cast(value as int) from @parameters where [key]='userPort'
	-- здесь также можно проверить на принадлежность к определенной роли
	-- например, пусть админов только с определенных IP или портов

	if(@port=12344) begin
		select 1 Result, '' Msg, '/' redirectUrl
	end else begin
		select 0 Result, 'No access' Msg, '' redirectUrl
	end

  -- SELECT 2 Outer commands
  select '' type
END

Аналогичным образом можно сделать ограничение доступа к некоторым критичным таблицам или формам (у них также есть параметр @parameters со сходными элементами). 

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы

Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK