Guten Tag alle. Ich erstelle gerade ein Login-Formular in Xamarin.Forms Portable-Anwendung. Ich habe ein WebFormsProject, bei dem ich einen API-Controller erstellt habe, der den Benutzernamen und das Passwort, die vom Benutzer eingegeben wurden, mit dem Benutzernamen und dem Passwort vergleicht, die in meiner Datenbank gespeichert sind.ASP.NET Identität Weg Hash-Passwort im Vergleich zu Crypto.HashPassword
Das Kennwort, das in meiner Datenbank gespeichert wird, wird mit ASP.NET Identity Hashed. Das Kennwort, das vom Benutzer eingegeben wird, wird mit Crypto.HashPassword (weiß nicht, ob diese Klasse eine ASP.NET-Identitätssache ist) gehashed.
Wie kann ich diese beiden vergleichen?
Wenn die beiden Passwörter übereinstimmen, sollte 'true' zurückgegeben werden, andernfalls false. Ich bin gerade in einer verwirrenden Phase. Hoffe, du kannst mir helfen. Vielen Dank.
Hier sind einige meiner Codes.
LoginController.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Description;
using WebFormsDemo;
using WebFormsDemo.ViewModel;
using System.Security.Cryptography;
using System.Web.Helpers;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin.Security;
using Microsoft.AspNet.Identity.EntityFramework;
namespace WebFormsDemo.Controllers
{
public class LoginController : ApiController
{
private EBMSEntities db = new EBMSEntities();
// GET: api/Login
[Route("api/Login/Search/{username}/{password}")]
[ResponseType(typeof(List<AspNetUser>))]
public bool getUsernamePassword(string username, string password)
{
var hashedPassword = "";
hashedPassword = Crypto.HashPassword(password);
var pass = (from u in db.AspNetUsers
where u.UserName.Equals(username)
select u.PasswordHash).Take(1);
string hashpassinDb = Convert.ToString(pass.FirstOrDefault());
return Crypto.VerifyHashedPassword(hashpassinDb, hashedPassword);
}
}
}
was soll ich damit machen? Es ist nur eine Erklärung? Welcher Hashalgorithmus wird in ASP.NET Identity verwendet? –
@JayceeEvangelista, * was soll ich damit machen? * Sie können dies verwenden und Ihr Problem lösen, * Es ist nur eine Erklärung? * Ja, ist es. * Welcher Hashalgorithmus wird in der ASP.NET-Identität verwendet? * Ist das Gleiche: https: //brockallen.com/2012/10/19/password-management-made-easy-in-asp-net-with-the- crypto-api /) –
Ich habe es auf meinen Code angewendet. Es stellt sich heraus, dass die Verwendung von Crypto.HashedPassword einen Hash-Wert erzeugt, der sich von dem in meiner Datenbank gespeicherten Hash-Wert unterscheidet. Einfach weil sie unterschiedliche Hashalgorithmen haben. –