Я думаю, вы, вероятно, хотели, чтобы это был статический вызов.Однако лучшим подходом было бы сделать этого помощника инъекционным сервисом, но не уверен, считаете ли вы его слишком сложным или избыточным.
Я только предложил это, поскольку вы указали, что он будет использоваться несколькими контроллерами.
Теперь, поскольку вы упомянули, что хотите сохранить его простым и, хотя и не лучшим из дизайнов, сделайтеметод static,
namespace VPV.Helpers {
public static class Strings {
public string Encrypt(string val, string salt) {
byte[] data = Encoding.UTF8.GetBytes(val + salt);
data = SHA512.Create().ComputeHash(data);
return Convert.ToBase64String(data);
}
}
}
и вызовите его там, где это необходимо.
public async Task<IActionResult> OnPostAsync(Guid id, string password, string passwordCheck) {
//...
var hashedPassword = new VPV.Helpers.Strings.Encrypt(password, salt);
//...
}
Вы также можете рассмотреть возможность преобразования помощника в метод расширения
namespace VPV.Helpers {
public static class Strings {
public string Encrypt(this string val, string salt) {
byte[] data = Encoding.UTF8.GetBytes(val + salt);
data = SHA512.Create().ComputeHash(data);
return Convert.ToBase64String(data);
}
}
}
, что будет означать, что вы можете вызвать его как
public async Task<IActionResult> OnPostAsync(Guid id, string password, string passwordCheck) {
//...
var hashedPassword = password.Encrypt(salt);
//...
}