Store对象提供了一些选择、管理、使用证书存储区的属性和方法。它包括的属性如表所示。
表CAPICOM_CHECK_FLAG对象的主要属性
值 | 数据类型 | 权限 | 意义 |
Certificates | Certificates | 只读 | 证书存储区的证书集,默认属性。 |
Store包括以下主要方法。
1.证书存储区添加证书方法Add
方法功能:添加一个证书对象到证书存储区。该方法只有在证书存储区被打开且有读写权限时有效。
[Visual Basic]
ObjectName.Add(
Certificate as Certificate
)
参数说明:
q Certificate:[IN] 添加到证书存储区的证书对象。
返回值:无
2.打开证书存储区方法Open
方法功能:打开特定的证书存储区。默认是以只读方式打开CAPICOM_CURRENT_USER_STORE和CAPICOM_CURRENT_USER_STORE。
方法定义:
[Visual Basic]
ObjectName.Open( _
StoreLocation as CAPICOM_STORE_LOCATION,
StoreName as String, _
OpenMode as CAPICOM_STORE_OPEN_MODE _
)
参数说明:
q StoreLocation:[IN] CAPICOM_STORE_LOCATION枚举类型数据,表示预打开的证书存储区。
默认是CURRENT_USER_STORE。CAPICOM_STORE_LOCATION可选的值以及意义如表27.8所示。
表 CAPICOM_STORE_LOCATION支持的参数
值 | 意义 |
CAPICOM_MEMORY_STORE 0 | 内存存储区 |
CAPICOM_LOCAL_MACHINE_STORE 1 | 本机存储区 |
CAPICOM_CURRENT_USER_STORE 2 | 当前用户存储区 |
CAPICOM_ACTIVE_DIRECTORY_USER_STORE 3 | Active Directory存储区。 |
q StoreName:[IN] 证书存储区名称。默认是CAPICOM_MY_STORE。StoreName可选的值以及意义如表27.9所示。
表 StoreName支持的参数
值 | 意义 |
CAPICOM_MY_STORE | MY存储区,当前用户的个人存储区。 |
CAPICOM_CA_STORE | CA存储区,保存CA证书的存储区。 |
CAPICOM_ROOT_STORE | ROOT存储区,保存CA根证书的存储区。 |
CAPICOM_OTHER_STORE | OTHER存储区,保存其他人证书的存储区。 |
q OpenMode:[IN] CAPICOM_STORE_OPEN_MODE_ 枚举类型的数据。打开存储区的模式。默认是只读。CAPICOM_STORE_OPEN_MODE_可选的值以及意义如表27.10所示。
表CAPICOM_STORE_OPEN_MODE支持的参数
值 | 意义 |
CAPICOM_STORE_OPEN_READ_ONLY | 只读 |
CAPICOM_STORE_OPEN_READ_WRITE | 读/写 |
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED | 最大权限打开,即如果用户有写权限则以读/写的方式打开,否则以只读的方式打开。 |
示例代码:
var oStore = new ActiveXObject("CAPICOM.Store");
var oStoreCerts;
oStore.Open(CAPICOM_CURRENT_USER_STORE,CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_READ_ONLY | CAPICOM_STORE_OPEN_EXISTING_ONLY);//以只读的方式打开个人存储区
oStoreCerts=oStore.Certificates.Find(CAPICOM_CERTIFICATE_FIND_KEY_USAGE, CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE, true);//查找所有签名证书
var oSelectedCerts = oStoreCerts.Select();//弹出证书选择框
var oCert = oSelectedCerts (1);
alert("证书序列号:"+ oCert.SerialNumber);
var issuer=oCert.GetInfo(CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME);
alert("正式颁发者"+ issuer);
var subject=oCert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME)
alert("证书拥有者:"+ subject);
该代码的运行效果为读取个人存储区,弹出证书选择框,显示选择的证书信息。