我正在开发一个由其他人编码的网站。该应用程序包含三个层。网站,网络服务和图书馆。 Web服务可用于其他应用程序以调用方法和所有内容。工作人员使用该网站执行查询和所有内容。
问题是:网站使用使用库的Web服务而不是直接访问库。我想删除Web服务使用并立即使用库。不幸的是,当直接从网站调用时,库无法连接外部服务器。
Web服务在其Web配置中使用了impersonate方法,如下所示:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<compilation defaultLanguage="c#" debug="true" />
<authorization>
<allow users="*" />
</authorization>
<authentication mode="Windows" />
<identity
impersonate="true"
userName="USERNAME_HERE"
password="PASSWORD_HERE" />
<sessionState
mode="InProc"
stateConnectionString="tcpip=10.96.8.37:42424"
sqlConnectionString="data source=10.96.8.37;Trusted_Connection=yes"
cookieless="false"
timeout="20" />
</system.web>
当Web服务使用库时,库标识将成为web.config中指定的用户名。但是当我直接从网站上调用它时,用户结果是:MY_COMPUTER \ ASPNET
我如何在图书馆内成功模仿?
谢谢!
修改
好的,我想在网站的web.config中添加模拟代码。原来,该库使用了正确的用户,但请求需要永远,永远不会结束。你知道什么可能是错的吗?
答案 0 :(得分:2)
乍一看,您可以在交易网站的web.config中使用这些条目。
<authorization>
<allow users="*" />
</authorization>
<authentication mode="Windows" />
<identity
impersonate="true"
userName="USERNAME_HERE"
password="PASSWORD_HERE" />
然而你希望在做之前确定这是正确的做法。
安全是一个棘手的棘手问题,可以扭转局势,让你陷入困境。您在此处使用的用户应该是单一目的。它应该具有您需要的权限,而不是更多。
为什么不能在外部服务器上授予MY_COMPUTER \ ASPNET用户权限?
有很多方法可以在短时间内冒充,这可能会更清楚地解决您的问题。我会让那些真正了解答案的人告诉你它是什么。