悬赏园豆:100
[已关闭问题]
关闭于 2007-12-03 11:28
参照msdn中membership<br>在 webconfig中 我配置了<br><machineKey <br> validationKey="AutoGenerate" <br> decryptionKey="AutoGenerate,IsolateApps" <br> validation="SHA1" <br> decryption="Auto" <br> /><br><br> System.Security.Cryptography.HMACSHA1 hash = new System.Security.Cryptography.HMACSHA1();<br> hash.Key = HexToByte(machineKey.ValidationKey);<br> hash.Key = HexToByte(machineKey.ValidationKey); <br>在这调用HexToByte方法<br><br>private byte[] HexToByte(string hexString)<br>//这里hexString应该是AutoGenerate<br>{<br> byte[] returnBytes = new byte[hexString.Length / 2];<br> for (int i = 0; i < returnBytes.Length; i++)<br> returnBytes[i] =Convert.ToByte(hexString.Substring(i * 2, 2), 16);<br> return returnBytes;<br> }<br>这里提示不符合要求的 字符,我也查看了ToByte方法,如果字符中大于16进制的f的 时候他就报这个错误(不符合要求的字符)<br>但是在webconfig中 <machineKey validationKey="AutoGenerate"<br>validationKey必须是AutoGenerate,<br><br>我想既然是msdn中的例子,应该是测试过的,那为什么会出现这样的情况<br>请 大侠指教<br>
问题补充:
validationKey="AutoGenerate"
我也改成别的过,但是系统提示要AutoGenerate,里面的gto等字符已经不允许了
2楼的思路也是我开始这样想的,可是你可以看下msdn中的membership的例子,他用的access,就是测试了不成功还提示那样的错误,就搞定我郁闷。呵呵,加密要耗资源,当然在正式的项目中不可能这么做,现在就自己测试的问题!