使用媒体库 WP8 将字节数组(加密密码)另存为图片



im 真的对 Windows Phone 8 上的某些存储功能感到困惑。我正在尝试将多个应用程序共享的凭据(密码/用户)保存在本地手机存储中。从那里,用户将只能在一个应用程序中更改一次密码,并且它将为所有应用程序更改密码。我经历了3种可能性

  1. 保存在外部服务器上
  2. 将媒体库另存为图片
  3. 保存在管理凭据的新特定应用程序的隔离存储上

在公开第二种情况的代码中,我遇到问题"系统无效操作异常.发生了意外错误"

    public static void SaveToFile(byte[] Encryptedfile, string FileName)
    {      
        using (var mediaLibrary = new MediaLibrary())
        {
            using (var stream = new MemoryStream(Encryptedfile))
            {
                    var file = string.Format(FileName, Guid.NewGuid());
                    stream.Seek(0, SeekOrigin.Begin);
                    var picture = mediaLibrary.SavePicture(file, stream);  //ERROR
            }
        }
    }

函数的调用

        byte[] PasswordByte = Encoding.UTF8.GetBytes(password);
        byte[] UserByte = Encoding.UTF8.GetBytes(user);
        byte[] EncryptedPasswordUser = ProtectedData.Protect(PasswordByte, null);
        byte[] EncryptedUser = ProtectedData.Protect(UserByte, null);

        IsolatedStorageOperations.SaveToFile(EncryptedPasswordUser, "Password");
        IsolatedStorageOperations.SaveToFile(EncryptedUser, "User");
如果您能

给我另一种将文件保存在 WP8 上的公共本地存储中的方法,或者如果您能为我提供媒体库问题的解决方案,我将很高兴。

谢谢

使用 WriteableBitmap 将图像保存在媒体库中。愿这会帮助你

public static void SaveToFile(byte[] Encryptedfile, string FileName)
     {
       using (var stream = new MemoryStream(Encryptedfile))
         {
         var file = string.Format(FileName, Guid.NewGuid());
         WriteableBitmap bitmap = new WriteableBitmap(100,100);
         bitmap.SaveJpeg(stream, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100);
         stream.Seek(0, SeekOrigin.Begin);
         using (MediaLibrary mediaLibrary = new MediaLibrary())
          mediaLibrary.SavePicture(file , stream);
         MessageBox.Show("Image saved");
         }
     }

最新更新