使用ActiveX获取Web身份验证信息

时间:2011-09-13 09:42:32

标签: internet-explorer activex

在我的工作(Windows / IE)中,我们登录给定的域(DOM1)并需要在另一个域(DOM2)中使用Sharepoint服务器。

我将C#和AutoHotKey混合在一起,以便将数据从Sharepoint传递到SAP。到目前为止它工作正常,但现在我面临着在SP域中进行身份验证的问题。为了避免使用硬编码(或受DPAPI保护)的常用用户名/密码,我希望能够使用浏览器中的身份验证数据。

我对ActiveX的经验不多,但我想我可以将我的程序转换为它,但我不知道我是否能够从IE获取身份验证数据(以及如何)。

如果我从网页启动ActiveX,它是否可以从IE会话中获取身份验证数据?必须使用哪个API /接口/功能?

1 个答案:

答案 0 :(得分:1)

如果在网页中实例化ActiveX控件,则可以在IE和ActiveX对象之间进行交互。您必须将ActiveX对象放在<body>中的某个位置。我是这样做的:

<object id="OBJID" align="center" classid="clsid:[GUID of ActiveX]" style="z-index:0" codebase="http://yourdomain.com/path/ActiveXName.cab#version=x,x,x,x" height="300" hspace="0" vspce="0" width="250">

您必须将ActiveX方法连接到Javascript方法,如下所示:

<script language="javascript" event="ActiveXMethod" for="OBJID">LocalJSMethodName();</script>

当ActiveX控件加载时,您可以调用有线方法来执行Javascript方法,该方法可以将身份验证数据(如果是浏览器端)推送回ActiveX控件。 Javascript可以访问ActiveX属性,如下所示:

分配值:

document.OBJID.PropName = 'Some Value';

要检索值:

var x = document.OBJID.PropName;

您应该注意,ActiveX对象必须使用代码签名证书进行签名,否则Internet Explorer会阻止它,并且大多数时候都不会为您提供覆盖块并加载它的选项...

我希望这有帮助!

相关问题