0

私は長い間このプロジェクトに苦労しています。私は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にあります。

4

1 に答える 1

1

Windowsサービスは、ユーザーが実行しているように見えるように、[サービス]コントロールパネルを介して構成されたシングルユーザーとして実行されます。データベース接続がどのように関連しているかは不明ですが、さまざまな方法でサービスを開始および停止できるユーザーを指定できます。

コマンドscラインツール

を使用するsc sdset <Service name> <SDDL string>と、サービスのアクセス許可を構成して、サービスを開始/停止できるユーザーを制御できますが、これには、かなり簡潔で、特に十分に文書化されていないSDDL文字列形式を使用する必要があります。

使用するsubinacl

MicrosoftはSubInACL、いくつかのアクセス許可関連の設定を構成するために使用できると呼ばれるツールを提供しています。

このツールを使用して、次のようにサービスの開始/停止権限を設定できます。

subinacl.exe /service <your service name> /Grant=<user name>=TO

(「 」は、ユーザーにサービスの開始( )とサービスの停止()TOの両方のアクセス許可が付与されることを示します。他のアクセス許可の値は、を介して決定できます)。TOsubinacl /help /full

于 2012-11-05T16:26:09.793 に答える