|
UserInfo
Введение
|
      
Большинство intranet-решений, создаваемых для реализации тех или иных бизнес-процессов внутри компании, имеют сущность Пользователь
в предметной области решения (например, Автоматизированное расписание сотрудников). Помимо задачи идентификации
пользователя, работающего посредством Web-браузера, необходимо так же получать расширенную информацию о нем: фамилия, имя, отчество,
e-mail и т.п. Наиболее простой подход использован в расписании, где информация о пользователе хранится в базе данных.
Минус такого подхода заключается в том, что необходима предварительная регистрация пользователя и более того, вся информация о нем фактически
дублирует аналогичные сведения из базы данных пользователей PDC (primary domain controller, в дальнейшем - технология Active Directory).
     
Предлагаемый компонент позволяет определять уникальное имя пользователя открывшего сессию в Web-браузере (например, CRUSOE\ESavitsky - включая домен),
определять по этому имени ФИО пользователя, определять ФИО пользователя текущей сессии, а также различные представления имен пользователей, определяемые
системой.
|
Установка
|
      
Компонент регистрируется (через regsvr32) на Web-сервере, на котором расположено intranet-решение. В дальнейшем, если вам понадобится компонент UserTranslate, его
дополнительно необходимо зарегистрировать как COM+ приложение (причем только его, компонент ThreadUserInfo необходимо исключить, так как он возвращает информацию
о владельце нити). COM+ приложение необходимо настроить под запуск под учетной записью конкретного пользователя, входящего в группу локальных
администраторов Web-сервера.
|
Описание интерфейсов
|
ThreadUserInfo - информация о пользователе-владельце нити (который открыл сессию в Web-браузере) |
| getLogonName([out, retval] BSTR *pName) - возвращает уникальное logon-имя пользователя (вклчая домен). |
| getDisplayName([out, retval] BSTR *pName) - возвращает ФИО пользователя. |
| getFullyQualifiedDN([out, retval] BSTR *pName) - FullyQualifiedDN |
| getSAMCompatibleName([out, retval] BSTR *pName) - SAMCompatibleName |
| getCanonicalName([out, retval] BSTR *pName) - CanonicalName |
| getLastErrorText([out, retval] BSTR *pName) - Получить текст последней ошибки. |
|
|
ProgID | IPM.ThreadUserInfo |
Потоковая модель | Apartment |
CLSID | {FE6F084B-9827-4107-9E8F-74A0C93ADDC9} |
Версия | 1 |
|
UserTranslate - для получения информации о пользователе по его logon-имени. |
| getDisplayBySAM([in] BSTR logon, [out, retval] BSTR *pVal) - возвращает ФИО пользователя по logon-имени. |
|
|
ProgID | IPM.UserTranslate |
Потоковая модель | Apartment |
CLSID | {77B1660C-DAE0-4D39-BD7B-AA371D299DCC} |
Версия | 1 |
|
Получить список всех пользователей домена
|
======================= domainusers.vbs ===========================
sDomain = "TRINITY"
Set oDomain = GetObject("WinNT://"& sDomain)
oDomain.Filter = Array("User")
strXML = "<" & sDomain & ">" & VbCrLf
For Each oADobject In oDomain
strXML = strXML & vbTab & "<user logon=""" & oADobject.Name & _
""" fullname=""" & oADobject.FullName & """ />" & VbCrLf
Next
strXML = strXML & VbCrLf & "</"& sDomain & ">"
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set txtStream = FSO.CreateTextFile(sDomain & ".users.xml")
txtStream.Write strXML
==================================================================
|
В результате будет сформирован xml-документ со списком всех пользователей домена,
который можно подредактировать и использовать в качестве базы данных пользователей в intranet-решениях.
|
|
|