`

怎样限制控件,使之只能在指定的网站使用

阅读更多

 

 

当我们为网站开发ActiveX控件的时候,也许会出于希望控件功能由指定网站独享的目的,希望限制使用此控件的域。

 

 

实现原理

1. 在控件内获取IE浏览器接口IWebBrowser2

2. 通过此接口的get_LocationURL方法获取控件所在网页的URL。

3. 检查这个URL的域是否在白名单中。如果不是信任的域,任何方法都不允许调用。

 

使用方法:

1. 工程中include sitelock.h(下载地址:http://www.microsoft.com/downloads/thankyou.aspx?familyId=43cd7e1e-5719-45c0-88d9-ec9ea7fefbcb&displayLang=en)

2. 为控件类继承SiteLock模板 IObjectSafetySiteLockImpl。

public IObjectSafetySiteLockImpl<CActiveXDemo, INTERFACESAFE_FOR_UNTRUSTED_CALLER |INTERFACESAFE_FOR_UNTRUSTED_DATA>

3. 定义域名白名单,支持通配符*。

    BEGIN_SITELOCK_MAP()
        SITELOCK_ALLOWHTTP(L"*.mydomain1.com")
        SITELOCK_ALLOWHTTPS(L"*.mydomain1.com")
    END_SITELOCK_MAP()

4. 在程序中需要控件的方法前加入域的检查

//限制控件被信任者调用相关的宏
#define ENABLE_CALLER_VALIDATE_CHECK

#ifdef ENABLE_CALLER_VALIDATE_CHECK
    #define DO_CALLER_VALIDATE_CHECK() if (!InApprovedDomain()){return E_FAIL;}
#else
    #define DO_CALLER_VALIDATE_CHECK()
#endif

 

这样,我们控件提供的服务就只有我们允许的网站可以使用。

1
0
分享到:
评论

相关推荐

    textbox控件使用详解

    4. MaxLength 属性:该属性限制了文本框中可以输入字符个数的最大限度,默认为 0 ,表示在文本框所能容纳的字符数之内没有限制。例如,可以在设计时将文本框控件的 MaxLength 属性指定为 10,可以输入代码:文本框...

    MFC只能输入指定位数数字的eidt控件.zip

    为了使用CNumEdit类,你需要在你的MFC应用程序中包含`NumEdit.h`头文件,并在需要的地方实例化CNumEdit对象,替代常规的CEdit控件。然后,你可以设置位数限制并通过其他成员函数来定制其行为。 总的来说,CNumEdit...

    VB.NET控件使用实例

    在VB.NET编程中,控件是构建用户界面(UI)的核心元素,它们允许用户与应用程序进行交互。本教程将深入探讨VB.NET中的控件使用,通过实例帮助你快速掌握Windows Forms编程的基础和进阶技巧。 1. **基础控件介绍** ...

    Literal控件的使用

    1. Literal控件只能用于显示文本内容,不能用于显示其他类型的内容。 2. Literal控件的Mode属性需要根据实际情况进行设置,否则可能会出现显示异常的情况。 3. Literal控件的Text属性需要遵守HTML编码规范,否则可能...

    易语言枚举窗口控件文本

    在易语言中,“枚举窗口控件文本”是一项重要的技术,用于遍历并获取窗口上的所有控件(如按钮、文本框、列表框等)的文本内容。下面将详细介绍这一知识点及其相关技术。 枚举窗口控件是通过系统API函数来实现的,...

    WebBrowser控件的使用

    在.NET框架中,`WebBrowser`控件是一个非常实用的组件,它允许开发者在Windows Forms或WPF应用程序中集成Web浏览功能。这个控件能够内嵌一个基于Internet Explorer引擎的浏览器,使得用户可以在应用程序内部浏览网页...

    EDIT控件使用方法

    4. **限制输入**:通过设置控件的ES_NUMBER风格,可以限制用户只能输入数字;使用EM_SETLIMITTEXT可以限制最多输入的字符数;通过EN_KILLFOCUS事件可以进行输入合法性检查。 5. **多行EDIT控件**:若需创建多行文本...

    Windows常用控件的使用

    ### Windows常用控件的使用 #### 一、编辑框的使用 编辑框是Windows应用程序中最常用的控件之一,主要用于接收用户的文本输入并提供基本的文本编辑功能,如剪切、复制、粘贴等。 - **编辑框的特点**: - 用户...

    MFC picture控件使用

    这时,你需要使用SetBkMode()函数将控件的背景模式设置为TRANSPARENT,以使图片的透明部分正确显示。 ```cpp m_pictureCtrl.SetBkMode(TRANSPARENT); ``` 至此,我们就完成了通过按钮选择图片并在MFC picture控件...

    WdatePicker日历控件使用方法

    通过`minDate`和`maxDate`属性,我们可以设置日期选择的上下限,确保用户只能在指定范围内选择日期。例如,设置`minDate`为`2006-09-10`,`maxDate`为`2008-12-20`,则用户只能选择2006年9月10日至2008年12月20日...

    日期控件My97DatePicker的使用

    - **范围选择**:通过`onpicking`回调函数,你可以实现日期范围的选择,例如限制用户只能选择在两个特定日期之间的时间。 - **日期验证**:可以设置`isDisabled`函数,根据返回值决定某个日期是否可选。 - **日期...

    Gridview控件的使用详解

    ### Gridview控件的使用详解 #### 一、Gridview控件基础设置 Gridview控件在ASP.NET中被广泛用于展示数据集中的记录。它提供了丰富的功能来增强用户体验,如排序、分页、编辑、删除等操作。下面将详细介绍几个重要...

    st_curve(强大的曲线控件带使用说明)

    二次开发环境则是所有可以使用控件的地方,运行平台为win2000及其以上的操作系统,如果需要在win98下面使用,请向我索取mbcs版本的控件,如果要在纯英文操作系统下使用,请向我索取英文版控件,都不需要付费,但只...

    C#.NET 封装自定义组件(控件)Dll

    6. **使用DLL**:在目标项目中,通过`Add Reference`菜单项引入自定义控件的DLL,然后在设计视图中使用新控件,或者在代码中实例化并添加到窗体上。 7. **测试和调试**:最后,别忘了测试你的自定义控件在不同场景...

    上传文件控件简介

    - **文件类型限制**:使用`Accept`属性可以限制用户只能选择特定类型的文件,例如`.jpg`, `.png`等。 - **文件大小限制**:通过服务器端验证或IIS配置可以限制上传文件的大小,防止大文件导致服务器资源耗尽。 - **...

    MFC控件使用总结——CListCtrl

    这个函数接受一个DWORD类型的dwStyle参数,用于设定控件样式,比如LVS_EDITLABELS允许编辑列表项的文字,LVS_SHOWSELALWAYS始终显示选中项,而LVS_SINGLESEL则限制用户只能选择一个项。 为了显示图标,CListCtrl...

    C# Winform遍历控件(窗体、Panel的子控件)Controls

    2. **控件类型检查**:使用`is`关键字来判断控件类型是一种简单有效的方法,但需要注意的是,这种方法只能判断对象是否属于指定类型,而不能判断它是否继承自该类型。 3. **异常处理**:在遍历过程中,可能会遇到未...

    vc++控件练习组合框控件

    在VC++编程环境中,组合框(ComboBox)控件是一个非常重要的元素,它允许用户从一组预定义的选项中选择一个。这个控件结合了文本输入框和下拉列表的功能,为用户提供了一种交互式的选择方式。本文将深入探讨VC++中的...

    adroid控件的任意拖动

    为了提供更好的用户体验,可以在触摸事件处理中加入平滑动画,使控件的移动更加流畅。这可以通过`ObjectAnimator`或自定义`ValueAnimator`来实现。 7. **处理`ACTION_UP`事件** 当用户松开手指时,`ACTION_UP`...

    常用控件-笔记

    在C# WinForm开发中,控件是构建用户界面的核心元素,它们允许用户与应用程序进行交互。以下是对一些常用控件及其属性的详细说明: 1. **checkBox**:复选框控件,用户可以选择或取消选择。`checked`属性表示是否...

Global site tag (gtag.js) - Google Analytics