У меня есть похожий проект, и я могу дать вам некоторые подробности о том, как я выполнял подобные операции. Я предполагаю, что все ваше решение основано на .Net.
POCO (простые старые объекты CLR) - это просто объекты без бизнес-логики. Таким образом, проверка паролей должна осуществляться не непосредственно в этом классе, а на вашем бизнес-уровне. Например, пользовательский интерфейс будет вызывать действие контроллера для отправки данных на бизнес-уровень (BL), BL будет выполнять проверку пароля пользователя, вызывая хранилище для получения текущего сохраненного / зашифрованного пароля, BL будет сравнивать пароли и возвращать привести к вашему интерфейсу или предпринять какие-либо другие действия. Конечно, все данные также должны быть проверены, чтобы предотвратить такие вещи, как внедрение SQL или атаки межсайтового скриптинга.
Ваш POCO может иметь свойства Uid / Pwd. Вы должны передавать этот объект POCO между слоями приложения. Таким образом, пользовательский интерфейс MVC будет привязан к вашему пользовательскому объекту, и при отправке контроллер вызовет некоторый метод в вашем BL и выполнит бизнес-правила (пароль действителен) для этого пользовательского объекта. Чтобы передать их между фактическими слоями, вам нужно извлечь эти POCO из основного DAL и поместить их в отдельную сборку. Эти объекты обычно называют доменными объектами, и вы можете воспользоваться разработкой Google Domain Driven, чтобы получить больше информации об этой методологии.
Безопасность может быть реализована несколькими различными способами в приложении, все зависит от глубины элементов, которые вы хотите охватить. Основным в MVC является использование атрибута Authorize на ваших классах контроллеров (Google: Защита ваших действий контроллера). Когда ваш пользователь проходит проверку подлинности, ему могут быть назначены некоторые типы ролей приложений, и вы можете проверить, имеет ли пользователь одну из этих ролей, используя следующий формат:
[Authorize(Roles = "ModifyUserRoles")]
public ActionResult About()
{
}