1

我想知道 C# 中的文件流是否使用 SQL Server 身份验证。

是否可以使用用户名和密码在 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# 中的文件流是否使用 SQL Server 身份验证。

取决于您认为 FileStream 是什么。通过 SQL 访问 FileStream 使用 SQL 连接使用的任何内容。FileStream via windows - 显然 - 必须使用 windows 身份验证。

是否可以使用用户名和密码在 Windows 身份验证中使用文件流连接到数据库?

是否可以使用用户名和密码连接到 Windows 共享?是的。只要这些 ae 是 windows 用户的用户名和密码。

于 2012-07-24T08:25:10.907 回答