我的web.config文件中包含以下信息。
<appSettings>
<add key="AdminUsername" value="User1"/>
<add key="AdminPassword" value="Password1"/>
</appSettings>
如何加密和存储? 我该如何解密和使用?
答案 0 :(得分:2)
请参阅文章 - http://msdn.microsoft.com/en-us/library/k6h9cz8h%28v=vs.80%29.aspx
命令是:
aspnet_regiis.exe -pe“appSettings”-site“MySharePoint”-app“/”
其中MySharePoint是虚拟目录。 web.config文件也应该在目录中。
答案 1 :(得分:1)
使用aspnet_regiis或等效API加密配置部分的缺点是它会加密整个部分。
从安全角度来看,这很好,但是管理员更难以检查同一部分中的其他非敏感配置数据。 appSettings是管理员经常要检查的部分。
一种选择是将您的凭据放在不同的部分(例如,在<connectionStrings>
部分中创建虚拟连接字符串)并仅加密此部分:
<connectionStrings>
...
<add key="AdminCredentials"
providerName=""
connectionString="Username=...;Password=..." />
</connectionStrings>
您当然必须编写代码来解析虚拟连接字符串(String.Split)并提取凭据。类似于以下内容(为简单起见省略错误处理):
string s = ConfigurationManager.ConnectionStrings["AdminCredentials"].ConnectionString;
string[] tokens = s.Split(';');
string userName = tokens[0].Split('=')[1];
string password = tokens[1].Split('=')[1];
...
通过这样做,您可以将appSettings部分保留为未加密状态。