如何在asp.net中访问自动生成的验证和解密密钥?

时间:2009-11-18 17:53:25

标签: c# asp.net security encryption webforms

如果我在machine.config的machineKey部分中将DecryptionKey和ValidationKey设置为AutoGenerate,我如何从.NET查找已创建的实际生成的密钥?

我们希望使用相同的密钥来加密和验证我们自己的cookie。

感激地收到任何线索/提示。

2 个答案:

答案 0 :(得分:0)

我知道这不能解答您的问题,但是要加密和验证您自己的cookie,您不需要知道DecryptionKey和ValidationKey的实际值。只需使用EncryptDecrypt方法:

var ticket = new FormsAuthenticationTicket(
    1, 
    "username", 
    DateTime.Now, 
    DateTime.Now.AddMinutes(10), 
    false, 
    "some user data");
string encryptedTicked = FormsAuthentication.Encrypt(ticket);
// TODO: use the encrypted ticket in a cookie

答案 1 :(得分:0)

使用AutoGenerate会让您感到悲伤,因为您或者更确切地说您的用户经常会遇到异常。在数据加密和解密之间,密钥可以并且将会发生变化(通过应用程序池回收,Web.config触摸等应用程序重新启动)。