类似的问题已经存在很多,但我找不到能够帮助我解决具体问题的答案。我正在编写一个需要获取文件并在共享文件夹(本地网络)中进行更改的应用程序,但我不想向用户询问他的凭据。
如果用户已使用其凭据访问过共享文件夹一次,是否可以使用Windows功能记住这些凭据,直到重新启动?是否可以通过c#“检索”/使用这些凭据或“配置文件”来访问共享位置?
我一直在开发我的applciation以请求用户提供凭据然后冒充,但我真的想避免这样做:
token = IntPtr.Zero;
var success = LogonUser(machine_username, remote_machine, machine_password, 9, 0, ref token);
using (WindowsImpersonationContext person = new WindowsIdentity(token).Impersonate())
{
try
{
// do something on the network location
}
catch (IOException)
{
Console.WriteLine("Connection with the server failed!");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
person.Undo();
CloseHandle(token);
}
}