README.TXT

Networking (LAN Manager) API Sample 


This module illustrates how to use a Null session to overcome access
problems during network related query operations.

One example of the scenario this approach addresses is as follows:

User logs onto workstation A as the local administrator.

Administrator tries to query user information using the NetUserGetInfo()
API call on server B. This call fails with ERROR_ACCESS_DENIED.

The reason this problem occurs is that the administrator password on
workstation A does not match the administrator password on server B.

During the network query operation, the default behavior is to establish
a connection to the remote server using the credentials of the logged-in
user. In some scenarios, this behavior is not appropriate, and the
solution is to establish a connection using either known credentials,
or the Null credentials. Null credentials are suitable for most query
operations against a remote machine. However, if administrator
related actions are necessary, it is necessary to supply credentials
which have administrative privilege on the remote machine. Valid
credentials consist of a username, password, and optional domain name.

Establishing a connection in this manner requires that no existing
connections exist to the remote machine tied to the current logon
session.

Note: Null sessions are those where the user credentials passed in the
session setup SMB are null. This sample only implements a function to
establish a Null session, rather than a session with specific credentials.

Processes and Services running in the Local System account security context
have Null credentials by default, so establishing Null sessions in this
scenario is not required.

Applications that run only on Windows NT 4.0 and above can use
WNetAddConnection2() rather than NetUseAdd() to establish a Null session.