BizTalk自带有证书加密/签名的pipeline组件(MIME/SMIME),感觉配置比较复杂,而且不知道如何通过自己开发的客户端实现这种标准的加密/签名算法和BizTalk进行整合;
如果有朋友做过相关的技术,能否共享一下;
这次自己写了一下用.net 2.0自带的SignedXml,EncryptedXml,很容易就实现了这些功能,同时发现http://www.google.com/codesearch 非常不错,很多代码都可以找到;我就是从上面抄了一些;
类似实现下面的弹出式对话框,和下拉列表框的功能,只需要加上下面的几句话就可以了;
[Editor(typeof(MyCertificateEditor), typeof(UITypeEditor))]
public string EncryptionThumbprint
{
get
{
if (_EncryptionThumbprint.IndexOf(" ") >= 0)
return _EncryptionThumbprint.Replace(" ", "");
else
return _EncryptionThumbprint;
}
set
{
_EncryptionThumbprint = value;
}
}
选择证书的界面
弹出式编辑界面
下面是代码
internal class CertificateEditor : UITypeEditor
{
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
if (null == context) return value;
if (null == provider) return value;
IWindowsFormsEditorService service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
if (null == service) return null;
string orginalthumbprint = (value == null ? "" : value.ToString());
CertificateEditorUI control = new CertificateEditorUI(service, orginalthumbprint,
System.Security.Cryptography.X509Certificates.StoreName.AddressBook,
System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine);
service.DropDownControl(control);
if (control.SelectThumbprint != null)
{
return control.SelectThumbprint;
}
return value;
}
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.DropDown;
}
}
代码:
http://files.cnblogs.com/neozhu/Solution_.rar