Hi,
You should use MembershipContext.AuthenticatedUser
!
SiteContext.CurrentUser
It is available when the request contains parameters "userid", "username" or "userguid" with valid value of the user.
https://devnet.kentico.com/docs/8_2/api/html/P_CMS_SiteProvider_SiteContext_CurrentUser.htm
So MembershipContext.AuthenticatedUser
is an actual logged-on user, where as the other can be manipulated by url parameters.
Greets,
David