C#登录详细信息存储

我在C#中的程序上有这个登录表单,我将在我的网站数据库中匹配用户名和密码,然后当我得到一个说明为true的repsonse时,它会将用户详细信息存储在程序中,我不想使用外部文件存储详细信息,是否可以在程序中嵌入用户详细信息。 一旦用户再次使用该程序,它将检查用户详细信息是否仍然嵌入在程序中,这将使用户“登录”。 我有一种直觉,即嵌入式资源无法实时编辑。 存储用户名/密码以备将来使用的最佳方法是什么?     
已邀请:
嗯,是的,你可以存储“cookie”,这是我在你的应用程序中描述的“用户详细信息”所使用的术语(BTW我认为“cookie”的另一个术语是“身份验证票”。) 但是,通常用户无权修改正在运行的exe。而且,在应用程序之外存储信息的框架中有很大的支持...... 我认为你最好将它存储在某个私人区域,只有你的C#程序的用户才能看到。请查看隔离存储。也许加密它。 假设您有一个字符串,表示您要保存的数据称为状态(您可以将可序列化的类序列化为字符串。)您可以像这样保存它:
private static IsolatedStorageFile _isoStore =
                    IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly, null, null);
String state = "my Secret String";
            using (IsolatedStorageFileStream oStream =
                    new IsolatedStorageFileStream(C_CREDENTIALS_FILENAME, 
                                                    FileMode.Create, 
                                                    _isoStore))
            {
                Byte[] stateBytes = Encoding.Unicode.GetBytes(state);
                Byte[] encryptedBytes = ProtectedData.Protect(stateBytes, 
                                                                null, 
                                                                DataProtectionScope.CurrentUser);
                oStream.Write(encryptedBytes, 0, encryptedBytes.Length);
C_CREDENTIAL_FILENAME是您要存储信息的文件的名称。要获取它,请尝试以下操作:
string[] fileNames = _isoStore.GetFileNames(C_CREDENTIALS_FILENAME);
            if (fileNames.Any(item => item == C_CREDENTIALS_FILENAME))
            {
                //it exists
                using (IsolatedStorageFileStream iStream =
                    new IsolatedStorageFileStream(C_CREDENTIALS_FILENAME, FileMode.Open, _isoStore))
                {
                    Byte[] unEncryptedBytes = ProtectedData.Unprotect(iStream.ToArray(),
                                                null,
                                                DataProtectionScope.CurrentUser);
                    String unEncryptedXml = Encoding.Unicode.GetString(unEncryptedBytes);
                                    }
            }
            else
            { 
                //it doesn't exist
                return null;
            }
        }
    
IIRC,在Windows中无法修改正在运行的可执行文件,因此无法编辑“嵌入”数据。 还有几种选择,从我的头脑中命名一对: 受保护的存储 系统注册表 App.settings文件     

要回复问题请先登录注册