2014-05-22 1 views
1

안녕하세요 두 값을 가진 XML 파일이 있습니다.C#에서 문자열 변수에 xml의 문자열을 어떻게 사용할 수 있습니까?

첫 번째 값이 두 번째 값이

이 지금은이 값을 읽어 변수 문자열 ps_user이를 설정할 PowerShell 용 securestring과 암호입니다 파워 쉘 의 사용자 이름과 SecureString은

을 ps_password 내 질문 이제 SecureString 값을 사용할 수 있습니다. 여기

내 XML : 여기

<?xml version="1.0" encoding="iso-8859-1"?> 

<Credential> 
    <User value="tarasov" /> 
    <SecurePassword value="0d08c9ddf0004800000a0000340b62f9d614" /> 
</Credential> 

내 C# 코드 :

private string GetPowershellCredentials(string path, string attribute) 
     { 
      XDocument document; 
      string value = string.Empty; 

      try 
      { 
       document = XDocument.Load(path); 

       value = document.Element("Credential").Element(attribute).Attribute("value").Value; 

       return value; 
      } 
      catch (Exception) 
      { 
       return null; 
      } 
      finally 
      { 
       document = null; 
      } 
     } 

예 :

> string path = Server.MapPath("~/App_Data/Powershell_credentials.xml"); 

> string ps_user = GetPowershellCredentials(path, "User"); // It works 

> SecureString ps_password = GetPowershellCredentials(path,"SecurePassword"); // this not :((

내가 이것을 어떻게 할 수 있습니까?

답변

1

Ist GetPowershellCredentials가 문자열을 반환하기 때문에. 이것은 자동적으로 변환 될 수 없었다.

public static SecureString ToSecureString(string source) 
{ 
     if (string.IsNullOrWhiteSpace(source)) 
      return null; 
     else 
     { 
      SecureString result = new SecureString(); 
      foreach (char c in source.ToCharArray()) 
       result.AppendChar(c); 
      return result; 
     } 
} 

이 : 당신이 보안 문자열이 필요한 경우는 다음과 같이 사용할 수

SecureString ps_password = ToSecureString(GetPowershellCredentials(path, "SecurePassword")); 
+0

하지만 내 XML의 값이 securestring – Tarasov

+0

당신이 내 솔루션을 시도 적이있다? 시도해주세요 –

+0

(Fehler bei SSPI-Aufruf, siehe interne Ausnahme.) 영어로 SSPI Call에 의한 오류, 인턴 사역을보세요 ... – Tarasov

관련 문제