powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / StreamWriter запись файла в шару под другим логином.
5 сообщений из 5, страница 1 из 1
StreamWriter запись файла в шару под другим логином.
    #38920826
Etamin419
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Может кто сталкивался с такой проблемой, что когда пытаюсь создать текстовый документ на шаре, он выдает ошибку
System.IO.IOException: Вход в систему не произведен: имя пользователя или пароль не опознаны.
Код:private static StreamWriter _writer = new StreamWriter(@"\\\\192.168.111.10\\Distr\\Local_Certificates\\ErrorLogReport.txt", true);
_writer.WriteLine("{0} - {1} \\ {2} {3} {4} \r\n- {5}\r\n--------------------------------------------\r\n", DateTime.Now.ToString(), System.Environment.MachineName, System.Environment.UserName, System.Net.Dns.GetHostName(), compIP, text);
_writer.Close();


запуская приложение от себя, все работает. Я попадаю на шару и файл без ошибок создается и записывается.
Но когда сбрасываю приложение на другой компьютер(без домена и другой пользователь в системе, шара пингуется и просматривается с другого компа, доступ на запись тоже есть), он выдает ту же ошибку. с того компьютера чтобы попасть на шару, вожу свои учетные данные.
Соответственно моему приложению нужно как то указать, под каким логином и паролем туда заходить.
В StreamWriter не нашел расширенных параметров для входа в шару.
Пробовал через олицетворение (Impersonate), но как я понял, чтобы он заработал, нужно чтобы на втором компе была та же учетка как у меня.
...
Рейтинг: 0 / 0
StreamWriter запись файла в шару под другим логином.
    #38920889
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Etamin419,
В двух словах - нужна имперсонация. Посмотреть можно тут .
...
Рейтинг: 0 / 0
StreamWriter запись файла в шару под другим логином.
    #38920907
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Etamin419, а так...?
P.S.: Этот код и подробности Вы сможете найти в google и msdn

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
        #region Nested type: NETRESOURCE

        [StructLayout(LayoutKind.Sequential)]
        public struct Netresource
        {
            public int dwScope;
            public int dwType;
            public int dwDisplayType;
            public int dwUsage;
            public string lpLocalName;
            public string lpRemoteName;
            public string lpComment;
            public string lpProvider;
        }

        public enum ResourceScope : int
        {
            Connected = 1,
            GlobalNetwork,
            Remembered,
            Recent,
            Context
        };

        public enum ResourceType : int
        {
            Any = 0,
            Disk = 1,
            Print = 2,
            Reserved = 8,
        }

        public enum ResourceDisplaytype : int
        {
            Generic = 0x0,
            Domain = 0x01,
            Server = 0x02,
            Share = 0x03,
            File = 0x04,
            Group = 0x05,
            Network = 0x06,
            Root = 0x07,
            Shareadmin = 0x08,
            Directory = 0x09,
            Tree = 0x0a,
            Ndscontainer = 0x0b
        }



        #endregion

        [DllImport("mpr.dll")]
        private static extern int WNetAddConnection2
            (
            [MarshalAs(UnmanagedType.Struct)] ref Netresource lpNetResource,
            string lpPassword,
            string lpUserName,
            int dwFlags
            );

        [DllImport("mpr.dll")]
        private static extern int WNetCancelConnection2
            (
            string lpName,
            int dwFlags,
            bool fForce
            );



        [STAThread]
        private static void Main()
        {
            // параметры соединения
            string remoteHost = @"192.168.111.10";
            string sharePath  = @"Distr\Local_Certificates";
            string remoteUser = @"dom\donpedro";
            string remotePassword = @"pa$$w0rd";

            var netResource = new Netresource
                                  {
                                      lpLocalName = null,
                                      lpProvider = null,
                                      dwType = (int) ResourceType.Any,
                                      dwDisplayType = (int) ResourceDisplaytype.Share,
                                      lpRemoteName = String.Format(@"\\{0}\{1}", remoteHost, sharePath)
                                  };

            int errCode = WNetAddConnection2(ref netResource, remotePassword, remoteUser, 0);

            if (0 != errCode)
            {
                Console.WriteLine("Error: {0}", (new Win32Exception(errCode)).Message );
                return;
            }

            // StreamWriter _writer = new StreamWriter(String..Format(@"\\{0}\{1}\ErrorLogReport.txt", remoteHost, sharePath), true);

            WNetCancelConnection2(netResource.lpRemoteName, 0, true);

            Console.ReadKey();
        }

...
Рейтинг: 0 / 0
StreamWriter запись файла в шару под другим логином.
    #38920916
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 за Axeleron...
Есть только один нюанс... это наличие домена или доверительных отношений между доменами... код в спойлере этим вроде как не страдает...
...
Рейтинг: 0 / 0
StreamWriter запись файла в шару под другим логином.
    #38921211
Etamin419
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
buser,

Благодарю, то что нужно!
файл создался без лишних запросов на разных компах(в домене и без домена)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / StreamWriter запись файла в шару под другим логином.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]