Add claims on successful login and retrieve it elsewhere in the application
<p>Please I need assistance in implementing a custom way of assigning claims to authenticated users.
On successful login, </p>

<pre><code>var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                //Get the user
                ApplicationUser user = UserManager.FindByEmail(model.Email);
                //Ends here
                ClaimsIdentity identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
                AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = true }, identity);
</code></pre>

<p>I use the userId to fetch the role and other information about the user from the datastore. Thereafter, I need to add claims about the user with those information such as email, role, firstName, Lastname, gender, etc. before redirecting to the user dashboard.
This is the way I try to do it but the problem is that even after adding the claims at the login method, I am not able to retrieve it at the _loginPartial razor view</p>

<p>For instance when I want to display the email claim value at the login partial like this</p>

<pre><code>var claims = ClaimsPrincipal.Current.Claims;
    var principal = (ClaimsPrincipal)Thread.CurrentPrincipal;
    var email = principal.Claims.Where(c =&gt; c.Type == ClaimTypes.Email).Select(c =&gt; c.Value).SingleOrDefault();
</code></pre>

<p>It returns null.</p>

<p>So, as a result, I can only access them on the same login method after adding them but I need to be able to access it from anywhere in the application. 
Please I will appreciate any assistance on how to be able to retrieve these claims anywhere else throughout the application.</p>

<p>Thank you.</p>