我需要使用SecureString
了微軟的類,我發現下面的代碼在internet:如何在安全比賽中使用不安全的代碼?
public static class SecureStringExt
{
public static SecureString ConvertToSecureString(this string password)
{
if (password == null)
throw new ArgumentNullException("password");
unsafe //Red highlighted line
{
fixed (char* passwordChars = password)
{
var securePassword = new SecureString(passwordChars, password.Length);
securePassword.MakeReadOnly();
return securePassword;
}
}
}
}
唯一的問題是,unsafe
關鍵字不斷拋出我的錯誤說Cannot use unsafe construct in safe context
。 可惜我找不到爲什麼會這樣......
注: 上面的代碼中LINQPad運行,而不是在VS2013(與ReSharper的)。
我不明白爲什麼你需要在這裏使用不安全的,你創建安全的字符串沒有不安全的代碼。檢查我的答案。 – mybirthname 2014-09-20 22:33:13
該文件說你不應該使用該構造函數。請參閱http://msdn.microsoft.com/en-us/library/176bafkd(v=vs.110).aspx使用代碼@mybirthname給出的答案 – MicroVirus 2014-09-20 22:39:36