【问题标题】:Get web authentication info with ActiveX使用 ActiveX 获取 Web 身份验证信息
【发布时间】:2011-09-24 05:27:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: internet-explorer activex


    【解决方案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 会阻止它,而且大多数情况下不会让您选择覆盖该块并加载它...

    我希望这会有所帮助!

    【讨论】:

    • 您的解决方案意味着我需要添加一个javascript变量,我必须在其中放置用户名和密码才能使用它?我想要的是直接从 IE 直接访问用户/密码信息。我与一家公司 SP 合作,他们不允许我添加此类敏感信息(前提是它甚至可以在身份验证程序之外使用)。
    • 无论如何,点赞,因为稍后我可能会对您的帖子有所帮助。
    猜你喜欢
    • 2011-10-06
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多