1

C#のファイルストリームがSQLServer認証を使用しているかどうかを知りたい。

ユーザーIDとパスワードを使用してWindows認証でファイルストリームを使用してデータベースに接続することは可能ですか?

4

2 に答える 2

1

はい、Windows認証ファイルストリームを使用する必要があります。それに対処するための最良のことは、それを偽装することです。

クラス内で次のメソッドを宣言します

[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwlogonType, int dwlogonProvider, out SafeTokenHandle phtoken);

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
        public static extern bool CloseHandle(IntPtr handle);

次に、メソッドで:

public void method()
{

   WindowsImpersonationContext context = null;
   SafeTokenHandle safeTokenHandle;

    bool returnValue = LogonUser(connString[0], connString[1], connString[2], Convert.ToInt32(connString[3]), Convert.ToInt32(connString[4]), out safeTokenHandle);

    WindowsIdentity windowsIdentity = new WindowsIdentity(safeTokenHandle.DangerousGetHandle());

    context = windowsIdentity.Impersonate();

    //Make some operations

    context.undo();

}
于 2013-04-13T08:47:37.457 に答える
0

C#のファイルストリームがSQLServer認証を使用しているかどうかを知りたい。

FileStreamが何であると思うかに依存します。SQLを介したFileStreamアクセスは、SQL接続が使用するものを使用します。Windows経由のFileStream(明らかに)はWindows認証を使用する必要があります。

ユーザーIDとパスワードを使用してWindows認証でファイルストリームを使用してデータベースに接続することは可能ですか?

ユーザー名とパスワードを使用してWindows共有に接続することは可能ですか?はい。これらがWindowsユーザーのユーザー名とパスワードである限り。

于 2012-07-24T08:25:10.907 に答える