muszę korzystać SecureString
dla klasy Microsoft i znalazłem następujący kod na internet:Jak używać niebezpiecznego kodu w bezpiecznym konteksie?
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;
}
}
}
}
Jedynym problemem jest to, że słowo kluczowe unsafe
utrzymuje rzucanie mi błąd mówiąc Cannot use unsafe construct in safe context
. Niestety nie mogłem znaleźć, dlaczego tak się dzieje ...
Uwaga: Powyższy kod działa w LINQPad ale nie w VS2013 (z Resharper).
Nie rozumiem, dlaczego musisz używać tutaj niebezpiecznych, możesz utworzyć bezpieczny ciąg bez niebezpiecznego kodu. Sprawdź moją odpowiedź. – mybirthname
Dokumentacja mówi, że nie powinieneś używać tego konstruktora. Zobacz: http://msdn.microsoft.com/en-us/library/176bafkd(v=vs.110).aspx Użyj kodu @mojrodzeniename podanego w jego odpowiedzi – MicroVirus