Frage

SharePoint 2013-Apps in Visual Studio verfügen über eine TokenHelper-Klasse, die die Verwendung von OAUTH vereinfacht, um eine Verbindung zu einem SharePoint 2013 clientcontext herzustellen. Ich verwende diese Klasse, um eine Remote-Verbindung zu einem SharePoint 2013 (auf Office 365) herzustellen.

Ich kann die tokenhelper.getclientcontextwithautorizationcode-Methode verwenden, um den ClientContext mit dem OAuth-Autorisierungscode beim Laufen in einer Webanwendung mit einem httpCONTEXT.Current zu erhalten. Wenn ich jedoch denselben Code in einer Konsolenanwendung oder einem anderen Kontext verwenden kann, bei dem es keinen httpcontext.current gibt, gibt der Remote SharePoint 2013-Server (400) eine schlechte Anfrage zurück.

Ich habe das Problem auf die Microsoft.IdentityModel.S2s.Protocols.oAuth2.oAuth2s2sclient.issue () -Methode eingeschränkt. Wenn es einen httpcontext gibt, funktioniert es, ohne dass er den (400) -Fehler-Anforderungsfehler erhält.

Ich habe versucht, das MOQ-Framework zu verwenden, um einen httpcontext zu fällen, aber das funktioniert auch nicht.

Der Fehler tritt in der tokenhelper.getaccesstoken-Methode auf: generasacodicetagpre.

Alle Ideen?

War es hilfreich?

Lösung

Ich konnte endlich herausfinden, was ich falsch machte:

1) Der Berechtigungscode, der beim Erstellen der OAuth-Verbindung zurückgegeben wurde, ist nur für diese Browser-Sitzung gut geeignet.Deshalb konnte ich diesen Berechtigungscode später nicht wiederverwenden von Backendenddiensten oder in neuen Browsersitzungen.

2) Auf der Weiterleitungsseite habe ich den Berechtigungscode verwendet, der zurückgegeben wurde, um ein neues Zugriffsstoken zu erstellen.Aus dem Zugangsstoken könnte ich das Erfrischungshaken abrufen.

3) Das Aktualisierungs-Token ist, was ich später speichern und wiederverwenden kann, um Client-Kontexte von Back End Code oder neue Browsersitzungen zu erstellen. Um das OAuth-Token zu wiederverwenden, müssen Sie das Erfrischungs-Token nicht nutzen, nicht den Berechtigungscode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top