本文介绍了使用SQL Server身份验证的文件流的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道C#中的文件流是否使用SQL Server身份验证.
I want to know whether filestream in C# uses SQL Server authentication.
是否可以通过Windows身份验证中的文件流使用用户ID和密码连接到数据库?
Is it possible to connect to the database using filestream in windows authentication by using userid and password?
推荐答案
是的,必须使用Windows身份验证文件流.处理它的最好的方法是模拟它.
Yes it is mandatory to use windows authentication filestream.Best thing to deal with it is impersonating it.
在类中声明以下方法
[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();
}
这篇关于使用SQL Server身份验证的文件流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!