Интегрированная аутентификация Novell - получите имя пользователя локального компьютера на веб-сайте - PullRequest
1 голос
/ 07 мая 2009

Во-первых, я знаю, как и имеет встроенную проверку подлинности Windows в IIS7. Это прекрасно подходит для наблюдения за тем, как пользователь Active Directory вошел в систему на компьютере.

Но необходимо получить имя пользователя, прошедшего проверку подлинности Novell. Я не хочу пароль или что-либо еще, кроме имени пользователя.

Другие ограничения:

  • Не могу ничего установить на компьютеры пользователей
  • Может устанавливать вещи на веб-сервере
  • Может установить доверие между веб-сервером и сервером Novell
  • Он будет находиться на общедоступном веб-сайте с анонимным доступом, я могу настроить раздел, который требует аутентификации и, таким образом, получает оттуда пользователя.
  • Сайт находится на C # .Net 2.0
  • Если метод может также предоставить пароль, я могу использовать его для полной проверки пользователя с помощью Novell. Эта часть (общение с Novell Server LDAP) уже выполнена.
  • Должен работать с IE6 и IE7

(Update) На веб-сайте Novell единственная информация о едином входе в систему показывает, как войти в систему на Novell, и в заключение говорит следующее:

Способ (есть другие способы) для сохранения наши полномочия внутри глобального переменные, поэтому пользователь не должен аутентифицироваться для каждого форма (единый вход).

(Update) Также от Novell говорят, что у них есть SSO решение . Но контент датируется 2000 годом, а для еще одного требуется установить плагин на сервере Novell и заплатить за него 49 $ на пользователя. Так что это не верное решение.

1 Ответ

1 голос
/ 14 мая 2009

Вы говорите, что не можете ничего установить на компьютеры пользователей, но, возможно, обнаружите, что уже есть элемент управления ActiveX, который вы можете использовать, который мог быть частью клиентского компьютера Novell на ПК.

Я делал это в прошлом, используя элемент управления ActiveX для идентификации вошедшего в систему пользователя, передал его на веб-сервер и затем загрузил полную запись пользователя с использованием LDAP:

В прошлом я использовал тот, который упоминался как NWDir1, используя следующий синтаксис (с ColdFusion в качестве языка на стороне сервера, но я уверен, что вы могли бы перевести):

   <cfoutput>
    <object classid="CLSID:4F021AE3-9E98-11D0-A808-00C04FDCD94A"id="NWDir1" width=32 height=32></object>
    <script language="VBScript">
    Dim vbuser
    Sub Window_OnLoad()
     On Error Resume next
     vbuser = NWDir1.LoginName
     vbuser = StrReverse(vbuser)
     initInd = InStr(vbuser, Chr(92))
     if initInd <> 0 Then
      vbuser = Left(vbuser, initInd-1) 
      vbuser = StrReverse(vbuser)
     End if
     // REDIRECTION
     document.location.href = "index.cfm?userid=" + vbuser
     Exit sub
    End Sub 
    </script>
    <cfabort> 
   </cfoutput>

Это использует vbscript для управления клиентом activex, который обеспечивает novell, вошедшего в систему пользователя. Это значение (vbuser) затем передается обратно в index.cfm, где оно может быть обработано.

Эта техника явно подвержена взлому URL, но я не знаю, что происходило в течение 4+ лет, когда мы использовали эту технику.

Я уверен, что изначально нашел это на сайте Novell - попробуйте поискать NWDir1 или classid на этом сайте.

Надеюсь, это поможет

...