один логин для нескольких приложений Apex в одной рабочей области - PullRequest
0 голосов
/ 28 ноября 2011

Мы создали 5 приложений на основе одной и той же схемы и все в одном рабочем пространстве.Собственно, изначально они создавались на разных машинах.теперь мы должны аутентифицировать пользователей из AD и, в зависимости от типа пользователя, разрешать или запрещать некоторые модули.Я создал одно пейджинговое приложение, которое имеет 5 кнопок и может управлять отображением кнопок в зависимости от пользователя, вошедшего в систему, но ... проблема в том, что внутри приложений у меня есть ограничения на некоторые отчеты для некоторых пользователей ... теперь одним из способов былоСделайте это, чтобы создать вход для каждого приложения в отдельности, и, таким образом, каждое приложение будет точно знать, кто вошел в систему. Но это было бы непрактично, поскольку нам нужна функциональность с единым входом.пожалуйста, дайте мне знать, как сделать так, чтобы одна страница входа работала для всех приложений в рабочей области apex, чтобы каждое приложение знало имя пользователя, вошедшего в систему в данный момент. Для 5 приложений я фактически использую схему аутентификации No_Authentication.и я изначально использую следующую функцию для моего приложения с одним пейджером, чтобы визуализировать кнопки пользователю или отказать

 create or replace function getUserName return varchar2
is
  userName varchar2(20);
  c owa_cookie.cookie;
begin
   c := owa_cookie.get('LOGIN_USERNAME_COOKIE');
   userName := c.vals(1);
  return trim(userName);
  end;

, но я не могу явно использовать эту функцию в моих 5 реальных приложениях.

запрашивается помощьПожалуйста.заранее спасибо.

1 Ответ

0 голосов
/ 29 ноября 2011

Проверьте мой ответ здесь по поводу обмена сеансами: Кнопка Apex для вызова страницы в другом приложении

Что нужно сделать дальше: дать каждому приложению схему аутентификации.Ваши неаутентифицированные приложения также нуждаются в аутентификации, вы можете скопировать схему из основного приложения и подписать их на основное, чтобы любые изменения в основном отражались в подписанном.Самое важное: то же имя файла cookie в схеме аутентификации и передача сеанса при установлении связи между приложениями.

Если вы хотите перенаправлять в основное приложение для каждого входа, который необходимо выполнить, необходимо добавитьпроцесс подачи заявок на страницы входа в ваши «суб-приложения».Поместите это в On Load - Before Header:

htp.init();
owa_util.redirect_url('f?p=main_app:101');  --redirects
apex_application.g_unrecoverable_error := true; --stops processing

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

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

Тогда вы можете использовать :APP_USER в своих приложениях и пропустить метод cookie, они одинаковы.

...