如何使用流畅的nhibernate加密密码属性

时间:2012-05-22 06:50:16

标签: asp.net-mvc nhibernate fluent-nhibernate

我正在尝试在我的asp.net mvc 3上创建用户类

但我怀疑如何使用流畅的方式加密密码

public class User
{
    public virtual int Id { get; set; }

    [Required]
    public virtual string Username { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public virtual string Password { get; set; }

    public virtual IList<UserGame> UserGames { get; set; }
}

public class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Id(x => x.Id).GeneratedBy.HiLo("1000");
        Map(x => x.Username).Unique();
        Map(x => x.Password);
        HasMany(x => x.UserGames).Cascade.All();
    }
}

1 个答案:

答案 0 :(得分:2)

正如评论所示,哈希并使用盐,但要回答您的问题,请查看http://nhforge.org/blogs/nhibernate/archive/2009/02/22/encrypting-password-or-other-strings-in-nhibernate.aspx 然后在你的流畅映射中,例如:

x.Map(x => x.Password).CustomType<EncryptedString>()