Я использую PWDENCRYPT в базе данных SQL Server для шифрования пароля, чтобы можно было расшифровать пароль в ASP.NET CoC#

Место общения программистов C#
Anonymous
Я использую PWDENCRYPT в базе данных SQL Server для шифрования пароля, чтобы можно было расшифровать пароль в ASP.NET Co

Сообщение Anonymous »

Код: Выделить всё

[HttpPost]
public IActionResult Login(LoginViewModel model)
{
try
{
if (!ModelState.IsValid)
{
return View(model);
}

byte[] passwordBytes = Encoding.UTF8.GetBytes(model.Password);
var user = userBS.Login(model.Username, passwordBytes);

if (user != null)
{
return RedirectToAction("Index", "Home");
}

ModelState.AddModelError("", "Invalid login attempt");

return View(model);
}
catch (Exception ex)
{
ModelState.AddModelError("", "An unexpected error occurred. Please try again later.");
return View(model);
}
}

// Fetch the stored user with the encrypted password
var user = context.Users
.Where(u => u.Name == username)
.Select(u => new
{
u.Id,
u.Name,
EncryptedPassword = u.LoginPassword
})
.SingleOrDefault();

if (user == null)
{
return null; // User not found
}

// Encrypt the provided password and compare with the stored encrypted password
var encryptedInputPassword = EncryptPassword(loginPassword);

if (encryptedInputPassword.SequenceEqual(user.EncryptedPassword))
{
return new User { Id = user.Id, Name = user.Name };
}

return null; // Invalid login attempt

private byte[] EncryptPassword(byte[] password)
{
// Placeholder for encryption logic
// Ensure this matches the logic used for PWDENCRYPT
return password;
}

Код: Выделить всё

using BOL_BussinessLayer_;

namespace DAL_DataAccessLayer_.Interface
{
public interface IUserDB
{
IEnumerable GetAll();
bool Register(User user);
User Login(string username, byte[] loginPassword);

}
}
Я хочу расшифровать пароль пользователя при входе в систему в ASP.NET Core web.
пароль зашифрован в SQL Server с помощью pwdencrypt.

Подробнее здесь: https://stackoverflow.com/questions/788 ... w-can-decr

Вернуться в «C#»