我很长时间都在为这个项目苦苦挣扎。 我正在使用Windows服务应用程序。我已经创建了一个可用的Windows服务应用程序。现在我收到一个请求,只有授权用户才能启动该服务。
这是我尝试过的。 一世。从app.config文件中读取连接字符串
<add name ="ConnectionString" connectionString="Data Source = Server_name; Initial Catalog = DB_DEV; Integrated Security = True" providerName="System.Data.SqlClient"/>
II。将连接字符串传递给SqlConnection
SqlConnection myConnection = new SqlConnection(myConnectionString) //gives me error here
III。并尝试启动服务登录 - 此用户。
是这样做的方式还是其他任何方式呢?请指导我。感谢。
注意 - 它在VS2010中。
答案 0 :(得分:1)
Windows服务作为单个用户运行,通过“服务”控制面板配置,就像您正在执行的那样。目前还不清楚数据库连接是如何相关的,但您可以通过多种方法指定哪些用户可以启动和停止服务。
sc
命令行工具使用sc sdset <Service name> <SDDL string>
,您可以配置服务的权限,允许您控制谁可以启动/停止服务,但是这需要使用相当简洁且没有特别好记录的SDDL字符串格式。
subinacl
Microsoft提供了一个名为SubInACL
的工具,可用于配置许多与权限相关的设置。
您可以使用此工具设置服务启动/停止权限,如下所示:
subinacl.exe /service <your service name> /Grant=<user name>=TO
(“TO
”表示用户将被授予启动服务(T
)和停止服务(O
)权限,其他权限值可以通过subinacl /help /full
)。