SignedData.CoSign 方法

[ CoSign 方法可用於需求一節中指定的作業系統。 請改用System.Security.Cryptography.Pkcs命名空間中的SignedCms 類別

CoSign方法會在先前簽署的內容上建立數位簽章

語法

SignedData.CoSign( _
  [ ByVal Signer ], _
  [ ByVal EncodingType ] _
)

參數

登入者 [in, 選擇性]

資料簽署者的 Signer 物件的參考。 Signer物件必須能夠存取用來簽署之憑證的私密金鑰。 此參數可以是 Null;如需詳細資訊,請參閱。

EncodingType [in, optional]

CAPICOM_ENCODING_TYPE列舉的值,指出簽署的資料如何編碼。 預設值為 CAPICOM_ENCODE_BASE64。 此參數可以是下列其中一個值。

意義
CAPICOM_ENCODE_ANY
只有當輸入資料具有未知的編碼類型時,才會使用此編碼類型。 如果使用這個值來指定輸出的編碼類型,則會改用CAPICOM_ENCODE_BASE64。 CAPICOM 2.0 中引進。
CAPICOM_ENCODE_BASE64
資料會儲存為 base64 編碼的字串。
CAPICOM_ENCODE_BINARY
資料會儲存為純二進位序列。

 

傳回值

這個方法會傳回字串,其中包含已編碼、帶正負號的資料。

如果此方法失敗,將會擲回錯誤。 Err物件將包含錯誤的其他資訊。

備註

重要

從 Web 腳本呼叫此方法時,腳本必須使用您的 私密金鑰 來建立數位簽章。 允許不受信任的網站使用您的私密金鑰是安全性風險。 對話方塊,詢問網站是否可在第一次呼叫此方法時顯示您的私密金鑰。 如果您允許腳本使用私密金鑰來建立數位簽章,然後選取 [不要再次顯示此對話方塊],該對話方塊將不會再出現在使用該私密金鑰建立數位簽章的網域內的任何腳本。 不過,嘗試使用私密金鑰建立數位簽章之網域以外的腳本仍會導致此對話方塊出現。 如果您不允許腳本使用私密金鑰,並選取 [不要再次顯示此對話方塊],該網域中的腳本將會自動拒絕使用私密金鑰來建立數位簽章的能力。

 

Cosigners 不保證以任何特定順序排列。

下列結果適用于 Signer 參數值:

  • 如果 Signer 參數不是 Null,這個方法會使用相關聯憑證指向的私密金鑰來加密共同簽署。 如果憑證所指向的私密金鑰無法使用,方法就會失敗。
  • 如果 Signer 參數為 Null ,而且CURRENT_USER MY 存放區中只有一個憑證可存取私密金鑰,該憑證會用來建立共同簽署。
  • 如果 Signer 參數為 Null則 Settings.EnablePromptForCertificateUI 屬性值為 true,且CURRENT_USER MY 存放區中有一個以上的憑證具有可用的私密金鑰,此時會出現一個對話方塊,可讓使用者選取使用的憑證。
  • 如果 Signer 參數為 NullSettings.EnablePromptForCertificateUI 屬性為 false,則方法會失敗。
  • 如果 Signer 參數為 Null ,且CURRENT_USER MY 存放區中沒有具有可用私密金鑰的憑證,則方法會失敗。

規格需求

需求
可轉散發套件
Windows Server 2003 和 Windows XP 上的 CAPICOM 2.0 或更新版本
DLL
Capicom.dll

另請參閱

密碼編譯物件

SignedData