bất cứ ai có thể cung cấp cho tôi với một ví dụ về cách tạo một chứng chỉ tự ký kết, trong đó sẽ được chấp nhận bởi các đoạn mã sau:Làm thế nào để sử dụng makecert để tạo ra một giấy chứng nhận X509 được chấp nhận bởi WCF
ServiceHost svh = new ServiceHost(typeof(MyClass));
var tcpbinding = new NetTcpBinding(SecurityMode.TransportWithMessageCredential, true);
//security
tcpbinding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
svh.Credentials.UserNameAuthentication.CustomUserNamePasswordValidator = new BWUserNamePasswordValidator();
svh.Credentials.UserNameAuthentication.UserNamePasswordValidationMode =UserNamePasswordValidationMode.Custom;
svh.Credentials.ServiceCertificate.Certificate = BookmarkWizSettings.TcpBindingCertificate;
....
svh.Open();
Tôi đã sử dụng
makecert -pe myCertificate
và
makecert -sv SignRoot.pvk -cy authority -r signroot.cer -a sha1 -n "CN=Dev Certification Authority" -ss my -sr localmachine
và
makecert -r -pe -n "CN=Client" -ss MyApp -sky Exchange
và tôi đã cố gắng để tạo ra các giấy chứng nhận với BouncyCastle, nhưng mỗi lần tôi nhận được ngoại lệ sau đây:
It is likely that certificate 'CN=Dev Certification Authority' may not have a
private key that is capable of key exchange or the process may not have access
rights for the private key. Please see inner exception for detail.
và ngoại lệ bên trong là null.
Có thể là một thủ thuật, nhưng tôi không hiểu.
Làm cách nào để tạo chứng chỉ phù hợp cho dịch vụ WCF của tôi ??
Hãy xem này làm thế nào để liên kết. http://msdn.microsoft.com/en-us/library/ff648498.aspx –
Liên kết này hữu ích nhất cho tôi khi thiết lập mỏ. Nó đi qua tất cả các bước. http://www.codeproject.com/Articles/96028/WCF-Service-with-custom-username-password-authenti – vikingben