I am using cookie authentication with claims identity. authentication works fine but authorization fails.
here am storing claims information if login credentials match.
var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
identity.AddClaim(new Claim(ClaimTypes.Name, _user[0].UserName.ToString()));
identity.AddClaim(new Claim(ClaimTypes.Role, _user[0].UserRole));
identity.AddClaim(new Claim(ClaimTypes.Email, _user[0].UserEmail));
HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));
here is the authorization setup in startup.cs configurationServices method
services.AddMvc();
services.AddAuthorization(options => {
options.AddPolicy("Admin", policy => policy.RequireClaim("Admin"));
options.AddPolicy("User", policy => policy.RequireClaim("User"));
});
and the controller
[Authorize(Policy = "Admin")]
public class UserController : Controller
{
//
}
This authorization redirects to me to access denied page although admin logs in with role. What are the problems here?