Ovi*_*lia 4 sql-server entity-framework visual-studio-2010 ef-model-first
我在VS2010的项目中使用Entity Framework Model First.
我想知道是否有办法password在.edmx窗口或属性窗口中设置要加密的字段.我不想更改生成的.cs文件,因为每次修改模型时都会覆盖它.
EF没有任何内置的加密支持,它也不支持数据库加密机制(除非您在SQL Server中使用透明加密,它将加密整个数据库).
作为一种解决方法,您可以在应用程序中进行集中加密和解密.这是高层次的想法:
string为加密数据使用属性 - 此属性将nvarchar在目标数据库中表示为列SaveChanges在你的方法ObjectContext或DbContext继承的局部类(或处理SavingChanges事件ObjectContext继承类).在此方法/处理程序中搜索处于Added或Modified处于状态(使用ObjectStateManager或DbChangeTracker)的实体的所有实例,从属性中获取应加密的值,对其进行加密并将加密值以Base64格式存储回属性.如果在为所有实例加密属性后进行SaveChanges覆盖调用base.SaveChanges.ObjectMaterialized甚至在ObjectContext继承类(在你的DbContext将不得不使用IObjectContextAdapter来获得ObjectContext从您的实例DbContext的实例),从财产采取加密值,它从Base64编码格式转换为字节数组,解密,并将其存放回财产.这可能会导致一些其他复杂情况,因为更改属性值可能会导致修改状态,但您也应该能够修复它.| 归档时间: |
|
| 查看次数: |
11539 次 |
| 最近记录: |