Язык сценариев в песочнице для приложения C#/.NET

Для аутентификации учетной записи Application Express: применяется к учетным записям конечных пользователей, созданным с использованием интерфейса управления учетными записями конечных пользователей Application Express.

Войдите в рабочее пространство Internal и перейдите к Manage Instance > Security > Authentication Control, перейдите к Development Environment Settings и установите для Require User Account Expiration and Locking значение Да. enter image description here

Я надеюсь, что для пользовательской аутентификации вы можете регистрировать попытки недопустимых пользователей в таблице журнала и ограничивать / блокировать пользователей на основе количества последовательных недопустимых попыток входа в систему. .

Ниже приведен пример кода на основе ссылки при условии

Создайте таблицу USER_LOG для регистрации недопустимых попыток, как показано ниже

create table USER_LOG (username varchar2(4000), 
                       login_failed_count number, updated_on date);

Измените существующий table1 и добавьте флаг (Y - Да, пользователь заблокирован, N - Нет, пользователь не заблокирован) для блокировки пользователя, как показано ниже.

Alter table table1 add is_locked varchar2(1) default 'N';

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

create or replace function Table1Authenticate( p_username varchar2, p_password varchar2 ) return boolean is  
   i integer;  
   l_rcnt number;
   l_failed_cnt number;
   l_max_failed_cnt number :=4;
   l_lock_flag varchar2(1);
begin     
    select  count(1)  into l_rcnt 
     from table1 t1  
     where t1.username = p_username  
     and   t1.password = p_password;

       if (l_rcnt > 0) then
          select is_locked into l_lock_flag from table1 where username = p_username
          and password = p_password;

          if (l_lock_flag ='N') then
             delete from USER_LOG where username=p_username;
             return true;
          elsif (l_lock_flag ='Y') then 
            apex_util.set_custom_auth_status (p_status => 'Account Locked, Exceeded Maximum Attempts..!');
            return false;
          end if;
       else
           merge into USER_LOG u
           using dual l
           on (u.username=p_username)
             when matched then
                update set login_failed_count=login_failed_count+1,updated_on=sysdate 
             when not matched then
                insert (username,login_failed_count,updated_on) values
                (p_username,1,sysdate);

           select login_failed_count into l_failed_cnt 
           from user_log where username =p_username;
              if (l_failed_cnt > l_max_failed_cnt) then
                 update table1 set is_locked='Y' where username=p_username;
              end if;
            return( false );  
       end if;
   exception when others then  
           return( false );  
end;  

Чтобы разблокировать пользователя, обновите is_locked в table1 с Y до N. Пожалуйста, проверьте с несколькими сценариями, прежде чем использовать его. Надеюсь, это поможет вам.

6
задан Community 23 May 2017 в 12:14
поделиться

2 ответа

Можно загрузить te сценарий в другой AppDomain и управлять полномочиями второго AppDomain.

Эта ссылка должна запустить Вас:
http://blogs.msdn.com/shawnfa/archive/2005/08/08/449050.aspx

4
ответ дан 17 December 2019 в 00:15
поделиться

Я использовал Powershell в качестве языка сценариев на окнах сам и нашел, что это очень полезно, и если Вы знакомы с.NET затем ее тем более легче.

Загрузите два документа постраничного справочника здесь, это - все, что необходимо будет начать.

Но да можно использовать Систему.NET. Пространство имен IO для выполнения операций IO через Powershell

то же отправило # эта ссылка

3
ответ дан 17 December 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: