經過一個週末的遊戲(你從來沒有機會在辦公室做這樣的事情:-))我想出了以下解決方案,似乎工作。
在我的情況下,我使用的加密庫是「CryptSharp」Crypt Sharp Home Page,但由於我使用silverlight創建桌面客戶端,cryptsharp由於需要完整的.NET運行時而不會安裝。
這使我開始研究什麼,我不得不在應用程序的數據層訪問:
閱讀一些博客文章和一些MSDN之後,我想通了,我可以鉤更新功能。更具體地說,如果將自定義代碼添加到數據層,則會爲每個數據對象模型獲得「更新」(及其他),因此(通過NuGet添加CryptSharp之後),我最終得到:
partial void Users_Updating(User entity)
{
string encryptedPassword = "";
string encryptedSalt = "";
GenerateEncryptedPasswordAndSalt(entity.Password, out encryptedPassword, out encryptedSalt);
entity.Password = encryptedPassword;
entity.PasswordSalt = encryptedSalt;
}
這甜蜜和簡單適用我的加密技術來什麼都被輸入到拯救被點擊之前的表格,然後刷新的形式來顯示加密的密碼和鹽。
我可以做的是使實際密碼爲只讀,並彈出輸入明文密碼,所以沒有混淆,但現在這解決了我的問題。
@克里斯庫克 - 感謝您的建議,它給了我更多探索(我真的不用LightSwitch做很多事情),對事物的新探索總是很有趣。如果你對我如何解決這個問題有任何意見,我仍然有興趣聽到贊成和反對意見。
您使用HTML或Silverlight LightSwitch客戶端嗎?另外,查看以前輸入的值時,是否仍需要查看未加密的純文本? –
這是一個桌面/ Silverlight客戶端克里斯。如果我可以看到新的價值,我不會感到困擾,但是使用它的人對這些東西來說是非常新的,所以只需在明細的密碼字段中添加純文本密碼,然後讓他們按下保存並知道密碼已經被加密到數據庫的路上對我來說已經足夠了。 – shawty