Trying to get the current logged in Sitefinity user
Hi, can anyone help?
I’m trying to get the current logged in Sitefinity user, but no matter what I try I am not getting the user. This is for a custom module that executes on BeginRequest:
public void Init(HttpApplication context)
context.BeginRequest += context_BeginRequest;
void context_BeginRequest(object sender, EventArgs e)
var context = ((HttpApplication)sender).Context;
var user = context.User; // <-- Null
var sUser = SecurityManager.GetCurrentUser(); // return anonymous user
var cUser = ClaimsManager.GetCurrentIdentity(); // returns anonymous identity
I am currently logged into Sitefinity as the admin user, but no matter what, each of the users above do not show me as that user. Using the regular returns null, while both the SecurityManager and ClaimsManager return empty anonymous users.
The site is set to use Claims authentication, what else do I need to do to get the current logged in user?
Thanks in advance
Darren
Hi,
private static string GetCurrentSitefinityUser()
var identity = ClaimsManager.GetCurrentIdentity();
var currentUserGuid = identity.UserId;
if (currentUserGuid != Guid.Empty)
UserProfileManager profileManager = UserProfileManager.GetManager();
UserManager userManager = UserManager.GetManager("Default");
User user = userManager.GetUser(currentUserGuid);
SitefinityProfile profile = null;
if (user != null)
profile = profileManager.GetUserProfile<
SitefinityProfile
>(user);
return profile.FirstName + " " + profile.LastName;
else
return "Anonymous User";
Hi Randy,
the problem appears to be related to the application event you're intercepting. BeginRequest is too early in the lifecycle to populate the claims authentication information.
Try running your code in a later event (Such as PostAcquireRequestState) and see if that allows you to get the user data you need.
Hope this is helpful!
Do you have a reference where I can find a list of these events?
I tried the one you mentioned in 6.3.5000 and it's never called (or breaked on)