asp.net - User.Identity.GetUserId() always returns null in controller action -
i needed use current logged in user id in controller. returns null. logged in. here's code.
if (string.isnullorempty(userid)) userid = user.identity.getuserid();
i tried adding reference
using microsoft.aspnet.identity;
i tried adding claim
public const string userid = "http://schemas.xmlsoap.org/ws/2014/03/mystuff/claims/userid"; useridentity.addclaim(new claim(customclaimtypes.userid, id));
when try retrieve claim, gives null well.
(identity claimsidentity).firstornull(customclaimtypes.userid);
any appreciated.
additional info requested in comments:
it's normal login provided aspnetuser.
var result = await signinmanager.passwordsigninasync(model.email, model.password, model.rememberme, shouldlockout: false); switch (result) { case signinstatus.success: return redirecttolocal(returnurl); case signinstatus.lockedout: return view("lockout"); case signinstatus.requiresverification: return redirecttoaction("sendcode", new { returnurl = returnurl, rememberme = model.rememberme }); case signinstatus.failure: default: modelstate.addmodelerror("", "invalid login attempt."); return view(model); }
request.isauthenticated returns true.
claims added here.
public async task<claimsidentity> generateuseridentityasync(usermanager<applicationuser> manager) { // note authenticationtype must match 1 defined in cookieauthenticationoptions.authenticationtype var useridentity = await manager.createidentityasync(this, defaultauthenticationtypes.applicationcookie); // add custom user claims here useridentity.addclaim(new claim(customclaimtypes.userid, id)); return useridentity; }
here answer, managed work.
i moved user.identity.getuserid();
helper class method.
i want reiterate, request not login request. separate request after login.
thank guys time.
Comments
Post a Comment