至于我,我是这样用的。
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var userStore = new UserStore<ApplicationUser>(new ExtractorDbContext());
var manager = new UserManager<ApplicationUser>(userStore);
var user = await manager.FindAsync(context.UserName, context.Password);
if (user != null)
{
string roleName = manager.GetRoles(user.Id).FirstOrDefault();
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim("UserId", user.Id));
identity.AddClaim(new Claim("Username", user.UserName));
identity.AddClaim(new Claim("Email", user.Email));
identity.AddClaim(new Claim("FirstName", user.FirstName));
identity.AddClaim(new Claim("LastName", user.LastName));
identity.AddClaim(new Claim("LoggedOn", DateTime.Now.ToString()));
identity.AddClaim(new Claim("Role", roleName));
context.Validated(identity);
}
else
{
return;
}
}
您可以修改
ClaimsIdentity oAuthIdentity
ClaimsIdentity
.