ASP.NET을 사용하여 개인 저장소에서 클라이언트 인증서를로드하려면 어떻게해야합니까?ASP.NET을 사용하여 개인 저장소에서 클라이언트 인증서를로드하려면 어떻게해야합니까?
가능한 경우 데이터로 암호화 할 수 있습니까?
저는 ASP.NET 2.0에 응용 프로그램을 만들어 클라이언트 인증서 저장소 (개인)에 설치된 모든 인증서를 검색하여 디지털 서명을 만들었습니다.
그러나 그것은 작동하지 않습니다, 그리고 난 당신이 ASP.NET 응용 프로그램을 노크 한 추측하고있어 문제
// ...
using System.Security.Cryptography.X509Certificates;
namespace WebApplication4
{
public partial class _Default : System.Web.UI.Page
{
public static string ToHexString(byte[] bytes)
{
// ...
}
protected void btnSignature_Click(object sender, EventArgs e)
{
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.OpenExistingOnly);
X509Certificate2Collection certificates = store.Certificates;
int a = certificates.Count;
lbCertCount.Text = System.Convert.ToString(a);
if (a > 0)
{
X509Certificate2 certificate = certificates[1];
string publicKey = certificate.GetPublicKeyString();
lbMypublicKey.Text = publicKey + "<br/>";
// AsymmetricAlgorithm privateKey = certificate.PrivateKey;
RSACryptoServiceProvider privateKey = certificate.PrivateKey as RSACryptoServiceProvider;
// test message
byte[] buffer = Encoding.Default.GetBytes("Welcome");
byte[] signature = privateKey.SignData(buffer, new SHA1Managed());
string me = ToHexString(signature);
lbSignature.Text = me;
RSACryptoServiceProvider publicKey1 = certificate.PublicKey.Key as RSACryptoServiceProvider;
bool verify = publicKey1.VerifyData(buffer, new SHA1Managed(), signature);
if (verify == true)
{
lbControl.Text = "Signature valid";
}
else
{
lbControl.Text = "Signature not Valid";
}
}
}
}
}
방문자 인증서 또는 서버의 사용자 계정에 대한 인증서를로드하려고합니까? –
방문자 인증서를로드하려고합니다.주의 : 모든 방문자가 인트라넷 네트워크에 있으며 모두 활성 디렉토리에 로그온합니다. –
확인. 사용자를 어떻게 인증합니까? 저들이 가장 했나요? –