Entity Framework: сохранение пароля как SecureString - PullRequest
2 голосов
/ 01 сентября 2011

В моем классе User у меня есть пароль SecureString. Чтобы сохранить пароль, я добавил свойство UserPassword.

Пример кода:

internal partial class User
{
    public string ID { get; set; }

    private string _password;
    public SecureString Password 
    {
        set { _password = SomePasswordHashing(value.ToString); }
    }

    public string UserPassword 
    {
        get { return _password; }
        set { _password = value; }
    }
}

Для сохранения / получения пароля пользователя это свойство должно быть общедоступным?

Есть ли способ не загружать свойство UserPassword (например, при поиске пользователей я бы хотел исключить загрузку паролей всех пользователей)?

1 Ответ

2 голосов
/ 01 сентября 2011

Для сохранения / извлечения пароля пользователя требуется ли это свойство быть публичным?

Да. EF-Code сначала должен быть общедоступным.

Есть ли способ не загружать свойство UserPassword (например, когда поиск пользователей, я бы хотел исключить загрузку всех пользователей пароли)

Вы можете преобразовать результаты при поиске, чтобы исключить пароли

var users = db.Users.Where(/* */).Select(u => new User{Name = u.Name});

Или используйте класс DTO, у которого нет свойства пароля, и возвращайте классы DTO вместо объекта модели.

...