????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