2010-07-13 26 views
0

我有一個用戶表,我想用動態數據。問題是我有密碼字段,我需要使用MD5進行加密。我使用實體框架,我如何做到這一點?密碼字段與Asp.Net動態數據

+0

我不明白這個問題,爲什麼你不能加密密碼並將其存儲在實體的字段中?像: var pwd = EncryptPassword(password); entity.Password = pwd; – CodingGorilla 2010-07-13 15:34:44

+0

我正在使用動態數據,我沒有調用Save的代碼。但如果你知道我在哪裏讓我知道。 – 2010-07-13 15:40:39

+0

您使用的是什麼版本的.Net/EF? – CodingGorilla 2010-07-13 15:53:35

回答

0

我發現這個解決辦法,但如果任何人有一個更好的主意,讓我知道

public partial class SigecRendicionesEntities 
{ 
    partial void OnContextCreated() 
    { 
     // Register the handler for the SavingChanges event. 
     this.SavingChanges 
      += new EventHandler(context_SavingChanges); 
    } 

    // SavingChanges event handler. 
    private static void context_SavingChanges(object sender, EventArgs e) 
    { 
     // Validate the state of each entity in the context 
     // before SaveChanges can succeed. 
     foreach (ObjectStateEntry entry in 
      ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntries(
      EntityState.Added | EntityState.Modified)) 
     { 
      // Find an object state entry for a SalesOrderHeader object. 
      if (entry.Entity.GetType() == typeof(Usuario)) 
      { 
       Usuario usr = entry.Entity as Usuario; 



       string hashProvider = "MD5CryptoServiceProvider"; 
       usr.Clave = Cryptographer.CreateHash(hashProvider, usr.Clave); 
      } 
     } 
    } 
} 
2

交替的想法是創建一個自定義FieldTemplate(使用UIHint覆蓋場場模板)來加密該領域。

+0

我起訴你的密碼字段TEEMplate,任何想法我如何修改它來做到這一點? – 2010-07-14 17:17:21