2011-09-13 29 views
1

Web认证信息在我的工作(在Windows/IE),我们在登录一个给定的结构域(DOM1),并需要另一个(DOM2)使用SharePoint服务器。获取使用ActiveX

我已经把C#和AutoHotkey的混合,以从SharePoint数据传递到SAP。到目前为止,它工作正常,但现在我面临SP域中的身份验证问题。为了避免使用硬编码(或DPAPI保护)的通用用户名/密码,我希望能够使用来自浏览器的验证数据。

我有一个小的ActiveX经验,但我想我可以在我的程序转换到它,但我不知道如果我将能够从IE获得认证数据(以及如何做到这一点)。

如果我从网页发起一个ActiveX,可以得到它从IE会话认证数据?必须使用哪个API /接口/函数?

回答

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将阻止它,并且大多数时候不会给你重写块,并加载它的选择......

我希望这有助于!

+0

你的解决方案意味着我需要添加一个JavaScript变量,我必须把用户名和密码,以使用它?我想直接从IE直接访问来自IE的用户/密码信息。我与一家企业SP合作,他们不会允许我添加这样的敏感信息(假设它甚至可以在验证过程之外使用)。 – SJuan76

+0

无论如何,upvoted,因为我可能会有一些使用您的帖子后。 – SJuan76