[Interest] D-Bus authentication

Thiago Macieira thiago.macieira at intel.com
Tue Dec 22 17:35:49 CET 2015


On Wednesday 23 December 2015 00:59:30 Nesuan Taiso wrote:
> Suppose I have registered a QDBusAbstractAdaptor object on the D-Bus.
> 
> When one of the slots is called, how do I identify the calling user (uid
> or sid)?

Get the sender's unique connection ID from QDBusContext (message().service()) 
then call GetConnectionUnixUser on the main bus interface (see 
QDBusConnectionInterface for a wrapper, which you can get with 
connection().interface()).

As in:
	QString sender = message().service();
	QDBusReply<uint> uid = connection().interface()->serviceUid(sender);

There's a function on Windows for obtaining the SID, but there's no C++ 
wrapper for it on QDBusConnectionInterface. You'll need to do 
call("GetConnectionCredentials", sender).


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Interest mailing list