1. A method for associating a private user identity for a user with a public user identity for the user, comprising the steps of: (a) recognizing an application session between a network and a public application via a gateway, wherein the public application resides externally to the network; and (b) creating an application session record for the application session, wherein the application session record comprises the public user identity used to access the public application, the private user identity used for accessing the network through a host, a host identity for the host, and an application session time, wherein the creating comprises: (b1) querying an identity server by sending the host identity and the application session time in the application session record, wherein the identity server comprises an access session record for an access session between a second host and the network, wherein the access session record comprises a second private user identity, a second host identity for the second host and an access session time; (b2) comparing by the identity server the host identity in the application session record with the second host identity in the access session record, and comparing the access session time with the application session time; (b3) returning by the identity server the second private user identity in the access session record, if the host identity in the application session record matches the second host identity in the access session record, and if the access session time matches the application session time; and (b4) storing the second private user identity as the private user identity in the application session record.