C# 在使用网络数据库时,在何处存储用户Id

C# 在使用网络数据库时,在何处存储用户Id,c#,database,registry,C#,Database,Registry,我们有一个使用网络数据库的C#.Net应用程序。我的意思是,应用程序的许多实例将从不同的机器访问相同的数据库。因此,如果我必须存储用户id以在重新登录时显示用户,我可以将其存储在哪里 我的选择是: -将其存储在应用程序目录中的本地文件中。(但问题是,应用程序是使用“单击一次”安装的。当应用程序更新时,应用程序目录正在更改。可能是我在这里遗漏了什么。) -存储在注册表中还有其他的吗 有人能建议怎么做吗?如果我错了,请更正。通常,您希望在会话之间存储任何需要保留的数据,并且这些数据是特定于用户的,存

我们有一个使用网络数据库的C#.Net应用程序。我的意思是,应用程序的许多实例将从不同的机器访问相同的数据库。因此,如果我必须存储用户id以在重新登录时显示用户,我可以将其存储在哪里

我的选择是:
-将其存储在应用程序目录中的本地文件中。(但问题是,应用程序是使用“单击一次”安装的。当应用程序更新时,应用程序目录正在更改。可能是我在这里遗漏了什么。)
-存储在注册表中
还有其他的吗


有人能建议怎么做吗?如果我错了,请更正。

通常,您希望在会话之间存储任何需要保留的数据,并且这些数据是特定于用户的,存储在注册表或用户AppData文件夹中。通常对于小事情(如ID、基本设置等),注册表是最好的地方。只需确保将其粘贴在HKCU\Software\Your company name\Your program name下即可。虽然如果数据是敏感的,您应该小心放置它的位置,并且应该对它进行加密以防止基本的窥探。如果是不敏感的数据,那么注册表是一个放置它的好地方


当然,这假设安装和配置不需要是xcopy便携式的(即,用户只需将安装文件夹复制到新的位置/计算机上,即可正常工作)。如果是这种情况,那么您需要将其存储在安装目录下。

通常,您需要在会话之间存储任何需要保留的数据,并且这些数据在注册表或用户AppData文件夹中是特定于用户的。通常对于小事情(如ID、基本设置等),注册表是最好的地方。只需确保将其粘贴在HKCU\Software\Your company name\Your program name下即可。虽然如果数据是敏感的,您应该小心放置它的位置,并且应该对它进行加密以防止基本的窥探。如果是不敏感的数据,那么注册表是一个放置它的好地方


当然,这假设安装和配置不需要是xcopy便携式的(即,用户只需将安装文件夹复制到新的位置/计算机上,即可正常工作)。如果是这种情况,那么您需要将其存储在安装目录下。

如果您需要将用户ID存储在本地,请将其保存在某种配置文件中,可能位于“LastLogin”条目下。查看并特别了解更多信息。

如果您需要在本地存储用户ID,请将其保存在某种配置文件中,可能位于“LastLogin”条目下。查看并特别了解更多信息。

此类物品有内置位置,具体请参见:

  • ApplicationData
    (用户特定漫游)
  • LocalApplicationData
    (特定于用户的非漫游)
  • CommonApplicationData
    (非用户特定)

此类材料有内置位置,具体请参见:

  • ApplicationData
    (用户特定漫游)
  • LocalApplicationData
    (特定于用户的非漫游)
  • CommonApplicationData
    (非用户特定)


考虑使用

考虑使用

重新登录是什么意思?如果这只是一个web服务器场,为什么不在Sql模式下使用会话?@Tejs如果用户已经登录过一次,我想在登录表单的用户Id文本字段中自动填充用户Id。在询问数据库之前,我想知道用户ID。@Prakash,小心不要存储任何纯文本密码。@Branko是的,当然。我只存储用户ID。你重新登录是什么意思?如果这只是一个web服务器场,为什么不在Sql模式下使用会话?@Tejs如果用户已经登录过一次,我想在登录表单的用户Id文本字段中自动填充用户Id。在询问数据库之前,我想知道用户ID。@Prakash,小心不要存储任何纯文本密码。@Branko是的,当然。我只存储用户ID。谢谢。当应用程序被更新时,应用程序文件夹被修改的情况如何(如问题中所述)。我还想问,为什么应用程序文件夹正在被修改。这些位置在应用程序文件夹之外-因此,应用程序文件夹内容的更新(如新的EXE/DLL等)不会更改您在这些位置放置的任何内容…我们通过单击一次安装的应用程序正在安装位置“c:\Users\Prakash\AppData\Local\Apps\2.0\\\“正在修改此应用程序安装文件夹。此路径是否在LocalApplicationPath下?我不使用ClickOnce,因此我不确定-我建议您通过检查上述位置在场景中返回的值来尝试此路径谢谢。当应用程序被更新时,应用程序文件夹被修改的情况如何(如问题中所述)。我还想问,为什么应用程序文件夹正在被修改。这些位置在应用程序文件夹之外-因此,应用程序文件夹内容的更新(如新的EXE/DLL等)不会更改您在这些位置放置的任何内容…我们通过单击一次安装的应用程序正在安装位置“c:\Users\Prakash\AppData\Local\Apps\2.0\\\”并且正在修改此安装的应用程序文件夹。此路径是否位于LocalApplicationPath下?我不使用ClickOnce,因此我不确定-我建议您通过检查场景中上述位置返回的值来尝试。因此,您要求我在AppData目录中创建另一个文件(常量路径)用于存储“LastLogin”,因为当应用程序更新时,应用程序文件夹将被修改。是的,这正是我的建议,所以您要求我在AppData目录中为storin创建另一个文件(常量路径)