2013-07-23 1 views
3

내 XML에서 자동 암호화 및 암호 해독을 구현하려고 시도했지만 작동하지 않습니다. 즉 데이터가 암호화되지 않았습니다. 그 이유는 무엇일까요? 내 코드는 아래와 같습니다. 나는 XmlSerializer 클래스를 사용하고 있습니다. 감사합니다OnSerializing 및 OnDeserializing 특성을 사용하는 방법?

[Serializable] 
public class User 
{ 
    public string _username; 
    public string _password; 
    public string[] _roles; 

    [XmlIgnore] 
    public string Username 
    { 
     get { return _username; } 
     set { _username = value; } 
    } 

    [XmlIgnore] 
    public string Password 
    { 
     get { return _password; } 
     set { _password = value; } 
    } 

    [XmlIgnore] 
    public string[] Roles 
    { 
     get { return _roles; } 
     set { _roles = value; } 
    } 

    [OnDeserializingAttribute] 
    internal void DecryptPersonalData(StreamingContext context) 
    { 
     _username = Crypto.Decrypt(_username); 
     _password = Crypto.Decrypt(_password); 
     for (int i = 0; i < _roles.Length; i++) 
     { 
      _roles[i] = Crypto.Decrypt(_roles[i]); 
     } 
    } 

    [OnSerializingAttribute] 
    internal void EncryptPersonalData(StreamingContext context) 
    { 
     _username = Crypto.Encrypt(_username); 
     _password = Crypto.Encrypt(_password); 
     for (int i = 0; i < _roles.Length; i++) 
     { 
      _roles[i] = Crypto.Encrypt(_roles[i]); 
     } 
    } 
} 
+0

? XmlSerializer, DataContractSerializer 또는 다른 것? 너도 수업 전체를 보여줄 수 있니, 고마워. –

답변

2

OnDeserializing 그것에서 파생의 XmlSerializer와 사용자 정의 직렬화를 수행하고 IXmlDeserializationCallback 인터페이스를 처리하기 위해 .... XmlSerializer 사용되지 않습니다. 여기 How do you find out when you've been loaded via XML Serialization?

+0

그래서': XmlSerializer'를 제 클래스에 추가해야합니까? – rtuner

+0

두 번째 링크 시도 ... 가장 쉬운 방법은 ... 복제 된 Twin 클래스를 만들어야합니다. –

관련 문제