使用凭据访问本地网络中的共享文件夹

时间:2018-05-18 12:00:39

标签: c# shared-directory

类似的问题已经存在很多,但我找不到能够帮助我解决具体问题的答案。我正在编写一个需要获取文件并在共享文件夹(本地网络)中进行更改的应用程序,但我不想向用户询问他的凭据。

如果用户已使用其凭据访问过共享文件夹一次,是否可以使用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);
                }
            }

0 个答案:

没有答案