在wix安装期间在web.config中设置加密连接

时间:2017-04-25 12:40:22

标签: asp.net asp.net-mvc wix connection-string

我有一个使用base 64加密连接字符串的Web应用程序。

<add name="connString" connectionString="r5IJ/jyd79T65xiCQ5c6m2vj6B9rVjFMfYiOW7WcpDDVZNJcQGDJfaO6kYfNCvlGXYthl+RHhDVMe6TT7R9Gba96EDTPVOkojQH21QX84yRv0qqn+//QDA==" providerName="System.Data.SqlClient"/>

我正在使用Wix打包Web应用程序。我的问题是如何在我的应用程序的web.config中使用wix安装来加密连接字符串?

1 个答案:

答案 0 :(得分:1)

验证连接字符串后非常简单,使用立即类型的自定义操作来加密连接字符串,然后将其存储到某个属性。

可视化工作室中的自定义动作项目。 并将加密逻辑放入其中。 WIX CustomActions 假设你有两个属性

<property Id="CONSTR" value"abc">
<property Id="CONSTR_ECYTP">

在对话框中,将第一个属性引用到连接字符串的文本框。

<Control Id="CONNECTIONSTRING" Type="Edit" X="40" Y="76" Width="220" Height="18" Property="CONSTR" Text="{200}" />

在此对话框中添加下一个按钮。

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next"></control>

现在在这个控制范围内。 调用您的自定义加密操作。

<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
    <Publish Event="DoAction" Value="ENCRYPT_CONNSTR" Order="1" >1</Publish>
    <Publish Event="NewDialog" Value="[NEXTDIALOG_ID]" Order="2" >2</Publish>       
</Control>

在自定义操作中设置其他属性,如。

session["CONSTR_ECYTP"]=Encryptfunction(session["CONSTR"])