我在 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 用户名和密码?
You can 使用 aspnet_regiis 加密 web.config http://msdn.microsoft.com/library/dtkwfdky.aspx。这是为了阻止有权访问您服务器的人读取敏感信息。
顺便说一句,我会将您的配置设置放在一个类中,然后可以将其注入到您的控制器中 - 这将使单元测试变得更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)