繁体   English   中英

Visual Studio应用程序在商店中发布之前可以正常工作,而发布后则不可以

[英]Visual Studio app working before publish on store and not after publishing

当应用未在Microsoft商店中发布时,此代码可以正常工作。 但是发布后出现“填充无效且无法删除”错误。 所有键和盐IV均已检查并且相同。 有什么问题请帮忙。 或建议其他代码。 它是手机8.1和Windows Mobile 10.0应用程序。 源文件位于SD卡中,而目标文件位于Application的本地文件夹中。

int Iterations = 1000;
AesManaged aes = new AesManaged();
aes.BlockSize = aes.LegalBlockSizes[0].MaxSize;
aes.KeySize = aes.LegalKeySizes[0].MaxSize;
byte[] salt = GetBytes(SaltKey);
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(SKey, salt, Iterations);
aes.Key = key.GetBytes(aes.KeySize / 8);
aes.IV = key.GetBytes(aes.BlockSize / 8);  

ICryptoTransform transform = aes.CreateDecryptor(aes.Key, aes.IV);
try
{
    using (FileStream dest = new FileStream(destFilename, FileMode.CreateNew, FileAccess.Write, FileShare.None))
    {
        using (CryptoStream cryptoStream = new CryptoStream(dest, transform, CryptoStreamMode.Write))
        {
            using (FileStream source = new FileStream(srcFilename, FileMode.Open, FileAccess.Read, FileShare.Read))
            {

                source.CopyTo(cryptoStream);                            

            }

        }
    }
}
catch (Exception exception)
{
    //return "Decryption failed : " + exception.Message.ToString();
    System.Diagnostics.Debug.WriteLine("Decryption failed : " + exception.Message.ToString());
    //throw new ApplicationException("Decryption failed.", exception);
    MessageBox.Show("Decryption failed : " + exception.Message.ToString());
}

问题出在从SD卡访问srcfile。 访问被拒绝,文件流失败,无法解密任何数据。 因此,它解密空数据并给出填充错误。 我明白了这一点,因为我尝试通过文件流复制副本文件然后解密。 复制文件失败,并导致访问被拒绝错误。 谁能帮忙为什么无法访问SD卡中的文件路径。 错误是https://www.microsoft.com/getsilverlight/DllResourceIDs/Default.aspx?Version=4.0.30508.0&File=mscorlib.dll&Key=UnauthorizedAccess_IODenied_Path 该应用在发布前正在访问SD卡文件。 包括所有权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM