【发布时间】:2018-10-28 05:19:19
【问题描述】:
我目前有一个 .net 控制台应用程序,它需要通过 appConfig 文件接收活动域帐户以连接到数据库。应用程序正在从 TaskScheduler 执行。我无法使用域帐户执行任务,因为这是一项安全设置(保存密码)。
我在统一设置文件 (appSettings.config) 中有连接字符串,并在控制台应用设置文件中设置了身份,包括用户名和密码
我的问题是如何使用任务调度程序来执行作业并在配置文件中包含用户名/密码?
在测试中,我使用了“本地服务”帐户和“网络服务”帐户,并收到来自 SQL Server 的登录错误”
用户“DOMAIN_NAME\MACHINE_NAME$”登录失败。原因:不能 查找与提供的名称匹配的登录名。 [客户:xxx.xxx.xx.xx(ip 客户端机器的地址)]
如果我使用具有管理员权限的本地帐户,则会返回以下错误:
登录失败。登录来自不受信任的域,无法使用 使用 Windows 身份验证。 [客户:xxx.xxx.xx.xx]
注意事项:
所有机器都在同一个域中并具有连接性
当任务设置为域帐户运行,并且身份标签没有用户名/密码时,任务按设计执行。
appSettings.config
<?xml version="1.0"?>
<appSettings>
<!-- CONNECTION STRINGS -->
<add key="connectionString" value="Data Source=DB_SERVER_NAME;Initial Catalog=DB_NAME;Integrated Security=SSPI;" />
.....
.....
application.exe.config
<?xml version="1.0"?>
<configuration>
<configSections>
</configSections>
<appSettings file="F:\SPASystems\Conf\appSettings.config" />
<system.web>
<identity impersonate="true" userName="DOMAIN_NAME\svc.ACCOUNT_NAME.user" password="dummy_password"/>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
....
....
【问题讨论】:
标签: c# .net sql-server connection-string impersonation