Knowledge Base

HOWTO: Set Up a Client for Authenticated RPC Under Windows 95

PSS ID Number: 184432

Article Last Modified on 12/17/2000


The information in this article applies to:


This article was previously published under Q184432

SUMMARY

Under Windows 95, a client application calls RpcBindingSetAuthInfo to set up a binding handle for an authenticated remote procedure call (RPC). If this is called with a NULL server principal name and the binding handle is not fully bound, RpcBindingSetAuthInfo fails with error 1819, RPC_S_BINDING_INCOMPLETE. In this case, you must use RpcEpResolveBinding to fully resolve the binding handle before calling RpcBindingSetAuthInfo. This article demonstrates how to do this.

MORE INFORMATION

Use the following sample code to use RpcEpResolveBinding to fully resolve the binding handle before calling RpcBindingSetAuthInfo:

Sample Code

 status = RpcEpResolveBinding(Binding, RpcServiceSample_v1_0_c_ifspec);
   if (status != RPC_S_OK)
   {
      printf("RpcEpResolveBinding failed - %d\n", status);
      return(1);
   }
   status = RpcBindingSetAuthInfo(Binding,
                                  0,
                                  SecurityLevel,
                                  RPC_C_AUTHN_WINNT,
                                  0,
                                  0
                                  );
   if (status != RPC_S_OK)
   {
      printf("RpcBindingSetAuthInfo failed - %d\n", status);
      return(1);
   }
				
Under Windows 95, if RpcBindingSetAuthInfo is called with a NULL server principal name, the binding handle must be fully bound. If the server registers the endpoint with the endpoint mapper in a dynamic endpoint (which is not known by the client), you must use RpcEpResolveBinding to bind the handle. You must do this because the Windows 95 run-time library implicitly calls RpcMgmtInqServerPrincName to obtain the principal name from the server, and you cannot make calls to management interfaces to unbound handles. All RPC server processes have the same management interface. Registering the handle with the endpoint mapper is not sufficient to uniquely identify a server.

REFERENCES

Platform SDK documentation: RPC; Windows 95

For additional information, please see the following article in the Microsoft Knowledge Base:

142064 RPC Authentication Option Under Windows NT


Additional query words: RpcBindingSetAuthInfo

Keywords: kbAPI kbhowto kbnetwork kbRPC KB184432
Technology: kbWin95search kbZNotKeyword3