2015-08-28 3 views
0

Je développe une application de stockage Windows 8.1 et en ce que je veux obtenir la liste d'adresses globale et ajouter la liste d'adresses globale en utilisant le script shell de puissance. Quand j'ai essayé d'ajouter la référence à System.Security.SecurityString il donne des erreurs comme suit .. J'essaye de m'authentifier avec mes détails d'admin de bureau365 mais il donne une erreur en construisant l'application.Windows Store App avec PowerShell

« System.Management.Automation.PSCredential » ne contient pas de constructeur qui prend 2 arguments

Mais il contient un constructeur avec deux arguments, le même code fonctionne bien quand je construis une application de formulaires de fenêtres. Quel sera le problème avec l'application Windows 8.1?

System.Uri psURL = new Uri("https://ps.outlook.com/powershell/"); 
    System.Security.SecureString securePassword1 = safeString("test"); 
    System.Management.Automation.PSCredential creds1 = new System.Management.Automation.PSCredential("test", securePassword1); 

Questions

1) Est-System.Security.SecurityString est compatible avec Windows 8.1 application ou cette erreur venant de PSCredential pourquoi parce que quand je l'ai enlevé la referance SecureString l'erreur ne se produit pas PSCredential mais obtenir erreur securestring manquant comme ça?

2) Existe-t-il une méthode alternative pour se connecter à PowerShell sans chaîne sécurisée par un code C#?

Répondre

0

System.Security.SecureString fait partie de .NET Framework.

Il n'est pas visible dans votre code exemple comment convertir votre chaîne à chaîne sécurisée:

$secure_string_pwd = convertto-securestring "[email protected]!" -asplaintext -force 
$username = "[email protected]" 
$cred = New-Object System.Management.Automation.PSCredential $username, $secure_string_pwd 

Essayez de vous connecter à O365 avec le code suivant:

Import-Module MSOnline 
$O365Cred = Get-Credential 
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange 
    -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred 
    -Authentication Basic -AllowRedirection 
Import-PSSession $O365Session 
Connect-MsolService –Credential $O365Cred 

Vous pouvez également trouver this article intéressant - L'exemple de code est pris à partir de là ...

+0

J'ai vérifié votre exemple et cela fonctionne bien comme script PowerShell. Mais j'ai besoin de cela dans le code C#. Toute aide à ce sujet? – user5224152

+0

Vous devriez être plus spécifique - application Web ou de bureau? En attendant vous pourriez trouver une solution [ici] (https://github.com/OfficeDev/O365API-PopulateSampleData) –

+0

Application de bureau que je développe. Je vous ai vu lier, mais il n'y a que des contacts, du courrier et des événements mais j'ai besoin de GAL (Global Address List) et c'est pourquoi j'essaye de me connecter en utilisant PowerShell. – user5224152