c# - 如何保护存储在 web.config 中的密码?

标签 c# asp.net asp.net-mvc iis web-config

我在我的 web.config 文件中添加了以下设置,以启动对外部系统的 API 调用。所以我将 API URL + 用户名 + 密码存储如下:-

<appSettings>
    <add key="ApiURL" value="https://...../servlets/AssetServlet" />
    <add key="ApiUserName" value="tmsservice" />
    <add key="ApiPassword" value="test2test2" /> 

然后在我的操作方法中,我将在构建 Web 客户端时引用这些值,如下所示:-

public ActionResult Create(RackJoin rj, FormCollection formValues)
        {
           XmlDocument doc = new XmlDocument();
           using (var client = new WebClient())
                {
                    var query = HttpUtility.ParseQueryString(string.Empty);
                    foreach (string key in formValues)
                    {
                        query[key] = this.Request.Form[key];
                    }

                    query["username"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiUserName"];
                    query["password"] = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiPassword"];

                    string apiurl = System.Web.Configuration.WebConfigurationManager.AppSettings["ApiURL"];

但是我将公开用户名和密码,这些可以被用户捕获,所以我的问题是如何保护 API 用户名和密码?

最佳答案

您可以 encrypt the web.config with aspnet_regiis .这是为了阻止有权访问您的服务器的人阅读敏感信息。

顺便说一下,我会将您的配置设置放在一个类中,然后可以将其注入(inject)到您的 Controller 中 - 这将使单元测试更加容易。

关于c# - 如何保护存储在 web.config 中的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20908438/

相关文章:

c# - 用c#声明javascript变量

asp.net-mvc - 依赖注入(inject)在 asp.net MVC 中是必须的吗?

c# - 如何在 MVC5 中手动检查 url 授权?

c# - 添加具有多个属性的产品变体

c# - 在文本框中单击一次选择点击的单词

c# - 用于移动 3D 对象的 Unity 脚本并未完全按计划进行

asp.net-mvc - linq : SQL performance on high loaded web applications

c# - DocType 标记上的 XML 反序列化失败

javascript - 将数据绑定(bind)到repeater控件中onclientclick()的链接按钮

javascript - 当 ListView 没有返回数据时 jQuery 出错