Hi,
I ant to login using email or phone number. I changed that but I got errors in ASPNetUsers Email, phonenumber and PasswordHash does not contain in definition of Email,Phonenumber and PasswordHash.Here is my code.
{
Entities dbObj = new Entities();
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
string Email = context.OwinContext.Get<string>("Email");
string PhoneNumber = context.OwinContext.Get<string>("PhoneNumber");
var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
if (Email != null)
{
var user = dbObj.AspNetUsers.Where(x => x.Email == Email).SingleOrDefault(); //Got the error here
if (user != null)
{
var psd = user.PasswordHash;
PasswordVerificationResult passresult = userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, context.Password);
if (dbObj.AspNetUsers.Any(x => x.PasswordHash == psd) && passresult.ToString() == "Success") //here
{
identity.AddClaim(new Claim(ClaimTypes.Role, "admin"));
identity.AddClaim(new Claim("username", "admin"));
identity.AddClaim(new Claim(ClaimTypes.Name, "Hi Admin"));
context.Validated(identity);
}
}
else
{
context.SetError("invalid_grant", "Email and password is incorrect");
return;
}
}
else if (PhoneNumber != null)
{
var user = dbObj.AspNetUsers.Where(y => y.PhoneNumber == PhoneNumber).FirstOrDefault(); //and here
if (user != null)
{
var psd = user.PasswordHash;
PasswordVerificationResult passresult = userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, context.Password);
if (dbObj.AspNetUsers.Any(x => x.PasswordHash == psd) && passresult.ToString() == "Success")
{
identity.AddClaim(new Claim(ClaimTypes.Role, "user"));
identity.AddClaim(new Claim("username", "user"));
identity.AddClaim(new Claim(ClaimTypes.Name, "Hi User"));
context.Validated(identity);
}
Thanks in Advance.