2015-07-30 4 views
5

Когда я смотрю в журнале SAS, есть 4 различные переменные, чтобы захватить пользователь:Пользователь хранимого процесса, какую переменную использовать?

_METAPERSON 
_METAUSER 
_SECUREUSERNAME 
_USERNAME 

Когда я проверить журнал, все 4 переменных имеют то же значение, когда я выполнить этот процесс. Поэтому я создал процесс, который проверял _Metauser для определенного пользователя, так что только пользователи, которых я хотел, могли что-то сделать. Но у кого-то из меня была проблема, что в переменной не было имени пользователя, сохраненного для него, когда он вызвал этот процесс, но username @ Context. В остальных трех переменных для него было только имя пользователя, поэтому, возможно, я могу перейти к одному из них. Я не могу использовать Metauser, потому что для некоторых людей может быть @Context после имени пользователя.

Нет, у меня есть проблема, какую переменную использовать? В чем разница между четырьмя переменными? Что использовать, чтобы быть уверенным, что я только (и всегда) получаю чистое имя пользователя, независимо от того, где и какая программа/версия Пользователь вызывает процесс?

  • На данный момент я использую Sas 9,3 и запустить процесс с помощью веб-сервиса
  • я перешел на SECUREUSERNAME на данный момент, но я не уверен, если это может создать проблемы для других пользователей, в настоящее время только 3 работы с этот процесс, но будет намного более скоро
  • Наша концепция авторизации на основе метаданных, поэтому я думаю, что, может быть, я должен использовать _Metaperson ...

ответ

4

_SECUREUSERNAME макро переменная создается, когда сервер приложений выполняет хранимый процесс. Значение _SECUREUSERNAME содержит идентификатор клиента, и это значение будет записано в макро переменную _USERNAME, если _USERNAME еще не содержит значения. В большинстве случаев значение _SECUREUSERNAME будет таким же, как _USERNAME

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

_METAPERSON Задает имя метаданных Person, связанный с переменной _METAUSER входа в систему. Значение этой переменной может быть UNKNOWN. Эта переменная не может быть изменена клиентом.

_METAUSER Указывает имя пользователя для входа в систему, которое используется для подключения к серверу метаданных. Эта переменная не может быть изменена клиентом.

На ваш вопрос нет простого ответа, потому что это зависит от вашей настройки. Должны ли пользователи загружаться с помощью Metaserver? Доступен ли ваш код с помощью WebService? Идентификаторы пользователей, каковы они, являются ли они идентификаторами из AD? Включен ли единый вход (SSO)? Как настроены идентификаторы на SAS? Пользователи доверяют пользователям подключаться?

С уважением, Vasilij

+0

Стандартный случай обращается к веб-сервису SAS с сохраненным процессом через SSO. Но также может быть ручной аутентификация в Webservice (после тайм-аута или изначально для некоторого пользователя), а также в очень редких случаях также выполняются процессы в EG. Мой коллега использует SSO, как и я, также он имеет точные параметры пользователя метаданных, поэтому странно, что @Context добавлен для Metauser. Он работает в другом отделе, так что это должно быть что-то в настройках пользователя там, но он ничего не может сказать об этом ... – kl78

+0

Я буду использовать _SECUREUSERNAME, потому что он работает, я уже принял ваш ответ, но возможно, вы можете добавить что-то о своем последнем комментарии – kl78

+0

Что-то уточнить (поймал меня сегодня) - _METAUSER НЕ является именем пользователя входа в метаданные SAS, но на самом деле имя пользователя для входа в систему. –

1

Я использую _METAUSER. Теперь наши системы настроены с использованием SSO, поэтому имя пользователя всегда не имеет значения «@». Я также использовал его без SSO, но затем мне пришлось использовать% scan (& _METAUSER, 1, @), чтобы удалить часть @context.

+0

Хм, мой коллега использует SSO и получает @ часть в любом случае (только для metauser). Вариант сканирования будет обходным путем, но я бы предпочел работать без каких-либо дополнительных функций. – kl78

+0

Я заметил, что иногда появляется часть @ после смены пароля. –

1

От тестирования в сеансе хранимого процесса, 9.2 (окна) среды с SSO:

OS имя пользователя (в моем случае, мои окна ID)

  • _METAUSER (при входе с логином ОС, например, с помощью единого входа, см @Vasilij Nevlev комментарий в общепринятый ответ)
  • _SECUREUSERNAME

SAS имя пользователя (в метаданных)

  • _METAPERSON - Указывает имя метаданных лица , связанное с переменной входа _METAUSER. Не знаете, как это может быть неизвестно, поскольку SMC не позволит вам ввести пустое значение. (Анонимный пользователь сети - webanon)
  • _USERNAME - определенно имя пользователя, так как вы можете использовать это вместе с _password в URL-адресе для обхода экран входа SAS.
+1

Полезно знать о логине по URL-адресу. +1. Кстати, вы получите разные результаты, если хранимый процесс запускается на сервере рабочей области. Он отбил меня, когда я принудительно выполнил выполнение на сервере рабочей области. Безопасное имя пользователя станет «(процессом)» для всех пользователей. –

Смежные вопросы