Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc 5中的模型中加密和解密_C#_Asp.net_Asp.net Mvc_Razor - Fatal编程技术网

C# 如何在asp.net mvc 5中的模型中加密和解密

C# 如何在asp.net mvc 5中的模型中加密和解密,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我在ASP.NETMVC5中有模型命名用户。我有Encrypt()和Decrypt()扩展方法来分别加密和解密字符串。我想在sving和从数据库获取数据时对数据进行加密和解密。所以,我用了: private string _mob; public string mob { get { return _mob.Decrypt(); } set { _mob = v

我在ASP.NETMVC5中有模型命名用户。我有Encrypt()和Decrypt()扩展方法来分别加密和解密字符串。我想在sving和从数据库获取数据时对数据进行加密和解密。所以,我用了:

private string _mob;
public string mob
    {
        get
        {
            return _mob.Decrypt();
        }
        set
        {
            _mob = value.Encrypt();
        }
    }
但我无法实现我的目标。当我使用

public string mob
    {
        get
        {
            return _mob;
        }
        set
        {
            _mob = value.Encrypt();
        }
    }

我完成了加密,但只要在get{}中添加Decrypt(),就不会进行加密/解密。我在数据库中看到纯文本数据。

EF将在数据库中存储数据时使用属性访问器,而不是备份字段,因此如果您希望存储加密值,则需要从getter返回加密值

由于您可能还需要一个返回解密值的属性,因此您可能需要一个单独的未映射属性用于解密文本。您可以使用
[NotMapped]
属性,这样EF也不会尝试将其保存到数据库中:

public string mob {get; set; }

[NotMapped]
public string mobDecrypted
{
    get
    {
        return mob.Decrypt();
    }
    set
    {
        mob = value.Encrypt();
    }
}

EF将在数据库中存储数据时使用属性访问器,而不是备份字段,因此如果您希望存储加密值,则需要从getter返回加密值

由于您可能还需要一个返回解密值的属性,因此您可能需要一个单独的未映射属性用于解密文本。您可以使用
[NotMapped]
属性,这样EF也不会尝试将其保存到数据库中:

public string mob {get; set; }

[NotMapped]
public string mobDecrypted
{
    get
    {
        return mob.Decrypt();
    }
    set
    {
        mob = value.Encrypt();
    }
}

先生,你能详细说明一下吗?我很高兴向你学习。详细说明什么?EF将使用属性getter,因此如果getter返回未加密的文本,这就是存储在数据库中的内容。。谢谢。。请编辑以便我可以投票。。我无意中否决了它:)当被带到索引列表MVC时,加载它花费了更长的时间。有什么解决办法吗?先生,你能详细说明一下吗?我很高兴向你学习。详细说明什么?EF将使用属性getter,因此如果getter返回未加密的文本,这就是存储在数据库中的内容。。谢谢。。请编辑以便我可以投票。。我无意中否决了它:)当被带到索引列表MVC时,加载它花费了更长的时间。有什么解决办法吗?