Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
 Подключение к сетевому ресурсу  [new]
Vova_GVP
Guest
Помогите, пожалуйста со следующе проблемой.

На компьютерах пользователей установлена программа-загрузчик, которая каждый раз при запуске присоединяется к сетевому ресурсу на сервере, копирует из него новые файлы и запускает основную программу.
Не все пользователи прописаны на сервере, но все кто пользуется программой знают имя и пароль для доступа к ресурсу.
Хотелось бы реализовать следующий алгоритм:

1. Попытаться установить подключение к ресурсу с текущими именем и паролем без участия пользователя.
2. Если подключение прошло удачно - то просто скопировать нужные файлы
3. Если подключение прошло неудачно - запросить имя пользователя и пароль для доступа к ресурсу.

В связи с этим есть два вопроса:
1. Как проверить есть ли доступ к ресурсам сервера для текущей учетной записи
2. Как подключиться к серверу с другим именем и паролем.
21 апр 05, 17:40    [1487498]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
Vova_GVP
Помогите, пожалуйста со следующе проблемой.

На компьютерах пользователей установлена программа-загрузчик, которая каждый раз при запуске присоединяется к сетевому ресурсу на сервере, копирует из него новые файлы и запускает основную программу.
Не все пользователи прописаны на сервере, но все кто пользуется программой знают имя и пароль для доступа к ресурсу.
Хотелось бы реализовать следующий алгоритм:

1. Попытаться установить подключение к ресурсу с текущими именем и паролем без участия пользователя.
2. Если подключение прошло удачно - то просто скопировать нужные файлы
3. Если подключение прошло неудачно - запросить имя пользователя и пароль для доступа к ресурсу.

В связи с этим есть два вопроса:
1. Как проверить есть ли доступ к ресурсам сервера для текущей учетной записи
2. Как подключиться к серверу с другим именем и паролем.

Используй репликацию и все будет указанное работат.
21 апр 05, 17:43    [1487508]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17089
net use...?
21 апр 05, 17:45    [1487516]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
ScareCrow
net use...?

Ребяты! Вы хоть в книджки заглядываете? От мелкомягких...
Есть фишка. Каждому юзеру(группе) при входе в домен автоматом грузится
батник. Что в нем напишешь, то и будем всем щастьем!
Типа время синхронизировать, аль файлики перкопировать, если новые...
21 апр 05, 17:48    [1487529]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
Di_LIne
Member

Откуда: Тропик Скорпиона
Сообщений: 32520
А причем тут Дельфя?
Это - в Windows.
Тьфу. Сам не посмотрел.
21 апр 05, 17:50    [1487539]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
Vova_GVP
Guest
Спасибо за советы.

А по существу вопросов может кто-нибудь ответить. Есть какие-нибудь API-функции для проверки подключения по сети? Может кто подскажет.

Репликацию не предлагать ! :)
21 апр 05, 17:55    [1487566]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
rrrrrrrrrr
Member

Откуда: РТ
Сообщений: 6366
Я человек недалекий, поэтому быстрое предпочитаю хорошему... Такой вариант:
1) проверка доступности сервера под текущей учетной записью - либо
SetCurrentDirectory(...) //дает ноль при ошибке, но работает довольно своеобразно
либо кладем на форму FileListBox и задаем ему папку. Если папка недоступна, будет исключение
try
FileListBox1.Directory := '\\server\share';
except
'...
end; ' второй способ работает очень стабильно, при всей своей "ненормальности"
В обработку исключения пишем код запроса имени пользователя и пароля, затем WNetAddConnection2 c этими параметрами.
22 апр 05, 08:29    [1488237]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
rrrrrrrrrr
Member

Откуда: РТ
Сообщений: 6366
Чего-то я лишнего спросонья нагородил... Конечно, достаточно одной WNetAddConnection2:
//------------
The WNetAddConnection2 function makes a connection to a network resource. The function can redirect a local device to the network resource.

The WNetAddConnection2 function supersedes the WNetAddConnection function. If you pass a handle to a window that the provider of network resources can use as an owner window for dialog boxes, use the WNetAddConnection3 function.

DWORD WNetAddConnection2(

LPNETRESOURCE lpNetResource, // points to structure that specifies connection details
LPCTSTR lpPassword, // points to password string
LPCTSTR lpUsername, // points to user name string
DWORD dwFlags // set of bit flags that specify connection options
);


Parameters

lpNetResource

Points to a NETRESOURCE structure that specifies details of the proposed connection: information about the network resource, the local device, and the network resource provider.
You must specify the following members of the NETRESOURCE structure:

Member Description
dwType Specifies the type of network resource to connect to. If lpLocalName points to a non-empty string, this member can be RESOURCETYPE_DISK or RESOURCETYPE_PRINT. If lpLocalName is NULL or points to an empty string, dwType can be RESOURCETYPE_DISK, RESOURCETYPE_PRINT, or RESOURCETYPE_ANY.
lpLocalName Points to a null-terminated string that specifies the name of a local device to be redirected, such as "F:" or "LPT1". The string is treated in a case-insensitive manner. If the string is empty or lpLocalName is NULL, the function makes a connection to the network resource without redirecting a local device.
lpRemoteName Points to a null-terminated string that specifies the network resource to connect to. The string can be up to MAX_PATH characters in length. The string must follow the network provider's naming conventions.
lpProvider Points to a null-terminated string that specifies the network provider to connect to. If lpProvider is NULL or points to an empty string, the operating system attempts to determine the correct provider by parsing the string pointed to by lpRemoteName.
You should set this member only if you know for sure which network provider you want to use. Otherwise, let the operating system determine which provider the network name maps to.
If this member is not NULL, the operating system attempts to make a connection only to the named network provider.


The WNetAddConnection2 function ignores the other members of the NETRESOURCE structure.

lpPassword

Points to a null-terminated string that specifies a password to be used in making the network connection.

If lpPassword is NULL, the function uses the current default password associated with the user specified by lpUserName.
If lpPassword points to an empty string, the function does not use a password.

lpUsername

Points to a null-terminated string that specifies a user name to be used in making the connection.
If lpUserName is NULL, the function uses the default user name. The user context for the process provides the default user name.

The lpUserName parameter is specified when users want to connect to a network resource for which they have been assigned a user name or account other than the default user name or account.

The user-name string represents a security context. It may be specific to a network provider.

dwFlags

A set of bit flags that specify connection options. The following bit flag constant is currently defined:

Value Meaning
CONNECT_UPDATE_PROFILE The network resource connection should be remembered. If this bit flag is set, the operating system automatically attempts to restore the connection when the user logs on.The operating system remembers only successful connections that redirect local devices. It does not remember unsuccessful connections or deviceless connections. A deviceless connection occurs when lpLocalName is NULL or points to an empty string.If this bit flag is clear, the operating system will not automatically restore the connection at logon.


Return Values

If the function succeeds, the return value is NO_ERROR.
If the function fails, the return value is an error code. Returning an error code provides compatibility with the behavior of the Windows 3.1 function WNetAddConnection. You can also call the GetLastError function to obtain the (same) error code. One of the following error codes may be returned when WNetAddConnection2 fails:

Value Meaning
ERROR_ACCESS_DENIED Access to the network resource was denied.
ERROR_ALREADY_ASSIGNED The local device specified by lpLocalName is already connected to a network resource.
ERROR_BAD_DEV_TYPE The type of local device and the type of network resource do not match.
ERROR_BAD_DEVICE The value specified by lpLocalName is invalid.
ERROR_BAD_NET_NAME The value specified by lpRemoteName is not acceptable to any network resource provider. The resource name is invalid, or the named resource cannot be located.
ERROR_BAD_PROFILE The user profile is in an incorrect format.
ERROR_BAD_PROVIDER The value specified by lpProvider does not match any provider.
ERROR_BUSY The router or provider is busy, possibly initializing. The caller should retry.
ERROR_CANCELLED The attempt to make the connection was cancelled by the user through a dialog box from one of the network resource providers, or by a called resource.
ERROR_CANNOT_OPEN_PROFILE The system is unable to open the user profile to process persistent connections.
ERROR_DEVICE_ALREADY_REMEMBERED An entry for the device specified in lpLocalName is already in the user profile.
ERROR_EXTENDED_ERROR A network-specific error occured. Call the WNetGetLastError function to get a description of the error.
ERROR_INVALID_PASSWORD The specified password is invalid.
ERROR_NO_NET_OR_BAD_PATH A network component has not started, or the specified name could not be handled.
ERROR_NO_NETWORK There is no network present.


See Also

WNetAddConnection, WNetAddConnection3, WNetCancelConnection2, WNetGetConnection, WNetGetLastError, NETRESOURCE
22 апр 05, 08:32    [1488242]     Ответить | Цитировать Сообщить модератору
 Re: Подключение к сетевому ресурсу  [new]
Vova_GVP
Guest
Всем спасибо !
Этот топик по ошибке кто-то перекинул из Delphi в Windows. Хотя я имел в виду именно программные методы. Не ожидал что кто-то здесь ответит, причем правильно ! WNet API (WNetAddConnection2) именно то что мне нужно
Еще раз спасибо !
22 апр 05, 09:25    [1488350]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Подключение к сетевому ресурсу  [new]
СНГ
Member

Откуда:
Сообщений: 10
Vova_GVP
Всем спасибо !
Этот топик по ошибке кто-то перекинул из Delphi в Windows. Хотя я имел в виду именно программные методы. Не ожидал что кто-то здесь ответит, причем правильно ! WNet API (WNetAddConnection2) именно то что мне нужно
Еще раз спасибо !


WNetAddConnection2 соединит с сервером под известным заранее пользователем, но не вывалит окошко с запросом пользователя-пароля, которые заранее не известны или из нельзя светить (особенно пароль).

Есть WNetAddConnection3, но не понятно что за окошки она выводит, и может ли пользователь сам ввести свои пользователь-пароль. Может кто подскажет как вывальть такое окошко, как это делает Винда?
1 мар 07, 22:27    [3851049]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Подключение к сетевому ресурсу  [new]
php_vasia
Member

Откуда: Krasnoyarsk
Сообщений: 62
NETRESOURCE nr;
dwRetVal = WNetAddConnection2 (&nr, NULL, NULL,[b]CONNECT_INTERACTIVE[/b]);

появится нужное окошко
Вот только пользователя с гостя сменить не удается, помогите
21 сен 12, 13:30    [13201900]     Ответить | Цитировать Сообщить модератору
Все форумы / Windows Ответить