Novell集成身份验证 - 在网站上获取本地计算机用户名

时间:2009-05-07 18:40:04

标签: c# .net iis authentication novell

首先,我知道如何在IIS7中进行集成Windows身份验证。这非常适合查看登录计算机的Active Directory用户。

但是,需要获取Novell身份验证用户的用户名。我不想要密码或其他任何东西。

其他限制:

  • 无法在用户计算机上安装任何内容
  • 可以在网络服务器上安装内容
  • 可以在Web服务器和Novell服务器之间建立信任
  • 它将在一个匿名访问的公共网站上,我可以调整一个需要身份验证的部分,从而让用户从那里获得。
  • 该网站位于C#.Net 2.0
  • 如果该方法也可以提供密码,我可以使用它来完全验证Novell用户。那部分(与Novell Server LDAP交谈)已经完成。
  • 必须使用IE6和IE7

(更新) 在Novell网站上the only info about single-sign on there is显示如何在Novell上记录某人,并在结论中告诉我们:

  

保存的方式(还有其他方法)   我们在全球的资格   变量,所以用户不必   对每一个进行身份验证   表格(单点登录)。

(更新) 同样来自Novell,他们说要有SSO solution。但是,内容可以追溯到2000年,而another one需要在Novell服务器上安装插件并为每位用户支付49美元。所以它不是一个有效的解决方案。

1 个答案:

答案 0 :(得分:1)

您说您无法在用户的计算机上安装任何内容,但您可能会发现已经有一个可以使用的ActiveX控件,它可能是PC上Novell客户端的一部分。

我以前使用ActiveX控件识别登录用户,将其传递给Web服务器,然后使用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,在那里可以对其进行处理。

这种技术显然容易受到网址攻击,但我不知道在使用这种技术的4年多时间里发生了这种情况。

我确定我最初在Novell网站上找到了这个 - 尝试搜索NWDir1或该网站上的classid。

我希望这会有所帮助