发布和安装应用程序

时间:2016-12-18 12:54:54

标签: vb.net visual-studio connection-string

- 我为System.Data.SQLite.SQLiteConnection定义了连接字符串

- 我从未配置过RsaProtectedConfigurationProvider所以我猜这是默认的提供者和代码

'Declaration
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class RsaProtectedConfigurationProvider _
    Inherits ProtectedConfigurationProvider

不需要

- 而不是使用经典代码 ToggleConfigEncryption https://msdn.microsoft.com/es-es/library/ms254494(v=vs.110).aspx

当我加载表单以加密ConnectionString部分时,我正在使用此代码:

Dim appconfig As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)

Dim constringsec As ConnectionStringsSection = appconfig.ConnectionStrings
    constringsec.SectionInformation.ProtectSection("DataProtectionConfigurationProvider")

取自https://juan-cuenca.blogspot.com.uy/2015/01/encriptar-archivos-de-configuracion.html

当我从Visual Studio运行我的应用程序时程序正常工作,我可以在我的Debug文件夹中找到该文件 myApp.exe.xml 以及文件myApp.vshost.exe.xml 都是

<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
  <CipherData>
    <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sB....
  </CipherData>
</EncryptedData>

所以我认为加密在调试时工作正常。

问题: - 当我在我的网络服务器上发布我的应用程序然后像任何Windows应用程序一样安装应用程序时程序仍然有效,但在我的C:\ Users \ MyUserName \ AppData \ Local \ Apps \ 2.0 \

文件myApp.exe.xml在ConnectionString部分仍然是纯文本。

(而其他文件myApp.vshost.exe.xml不存在)

我是否需要在代码或发布配置上做更多的事情? (也许一个“安装后”代码?) 或者是关于Windows权限的东西?

更新信息

现在好了它有效,但有一个额外的行为。在另一台计算机上安装和执行程序后,我在AppData \ Local \ Apps上有两个文件夹....这个文件夹中的一个加密了APP.Config而另一个没有加密。我证明删除了第二个文件,应用程序运行正常。 但是为什么在运行程序后该文件以纯文本存在?

0 个答案:

没有答案