Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2017, 11:01   #1
kainapro
Новичок
Джуниор
 
Регистрация: 06.05.2015
Сообщений: 2
По умолчанию Приведение является недопустимым по неявной причине

При отладке вылетает исключение с текстом System.InvalidCastException: "Заданное приведение является недопустимым." System.InvalidCastException произошло
HResult=0x80004002
Сообщение = Заданное приведение является недопустимым.
Источник = System.Data.SQLite
Трассировка стека:
в System.Data.SQLite.SQLiteDataReader .VerifyType(Int32 i, DbType typ)
в System.Data.SQLite.SQLiteDataReader .GetString(Int32 i)
в ConsoleApp3.Program.<ReadCookies>d_ _0.MoveNext() в C:\Users\narzull\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleAp p3\Program.cs:строка 37
в ConsoleApp3.Program.Vivod() в C:\Users\narzull\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleAp p3\Program.cs:строка 91
в ConsoleApp3.Program.Main(String[] args) в C:\Users\narzull\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleAp p3\Program.cs:строка 106
по непонятным причинам, при том, что если в кортеже будет 3 компонента вместо 4 то все будет работать отлично, но при добавлении больших вылетает это исключение. Ни как не могу понять в чем проблема, помогите кто чем может пожалуйста.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;
namespace ConsoleApp3
{
    class Program
    {
        static public IEnumerable<Tuple<string, string, string, string>> ReadCookies()
        {

            var dbPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\Cookies";
            if (!System.IO.File.Exists(dbPath)) throw new System.IO.FileNotFoundException("Cant find cookie store", dbPath);

            var connectionString = "Data Source=" + dbPath + ";pooling=false";

            using (var conn = new System.Data.SQLite.SQLiteConnection(connectionString))
            using (var cmd = conn.CreateCommand())
            {


                cmd.CommandText = "SELECT name,encrypted_value,host_key,httponly FROM cookies";

                conn.Open();
                using (var reader = cmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        var encryptedData = (byte[])reader[1];

                        var decodedData = System.Security.Cryptography.ProtectedData.Unprotect(encryptedData, null, System.Security.Cryptography.DataProtectionScope.CurrentUser);
                        var plainText = Encoding.ASCII.GetString(decodedData);

                        yield return Tuple.Create(reader.GetString(3), reader.GetString(2), reader.GetString(0), plainText);
                        
                    }

                }

                conn.Close();
            }
        }
    

        public static void Vivod()
                        {
            StreamWriter sw = new StreamWriter(@"D:\vivodcookie1");

            var cook = ReadCookies();
            foreach (var item in cook)
               sw.WriteLine("{0}  |  {1} : {2}-> {3} ", item.Item1, item.Item2, item.Item3, item.Item4);
            
            sw.WriteLine();


       
        }

        static void Main(string[] args)
        {
          
            Vivod();
          
        }
    }
}
kainapro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку: вывести все "недопалиндромы" из указанного диапазона (от a до b). "недопалиндром" - число которое само не является палиндромов,но сумма его цифр является jeppa Паскаль, Turbo Pascal, PascalABC.NET 8 06.10.2016 10:57
по какой то причине прога уходит в бесконечность! ---Demon--- Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2013 20:15
приведение типов??? nikozavr C# (си шарп) 1 14.05.2011 22:29
По какой причине сообщение вылетает 2 раза Lokos Общие вопросы Delphi 8 11.03.2011 14:59
надо разобраться в причине проблемы AndreyOrico Безопасность, Шифрование 0 11.02.2011 10:53