Ich habe eine einfache SharePoint-Client-App für das iPhone erstellt, die Zugriff auf einige SharePoint-Webdienste erfordert (hauptsächlich /_vti_bin/Lists.asmx). Ich habe Probleme, herauszufinden, wie dies in neueren SharePoint-Umgebungen wie Office365 funktioniert.
Bei alten BPOS-Umgebungen mit formularbasierter Authentifizierung konnte ich mich bei diesen Diensten authentifizieren, indem ich einfach didReceiveAuthenticationChallenge
method;
Dies hat offensichtlich nicht mehr mit SharePoint-Websites mit Anspruchsauthentifizierung funktioniert, also habe ich einige Nachforschungen angestellt und herausgefunden, dass ich FedAuth
-Cookies benötige, die an die Anfrage angehängt werden.
Nach diesem Artikel, mit .NET Apps, scheint es möglich, diese HTTPOnly FedAuth
-Cookies mit WININET.dll abzurufen, aber ich denke, das ist nicht auf dem iPhone verfügbar?
Dann sah ich SharePlus App mit UIWebView
und Benutzer zuerst auf dem Browser-Bildschirm in ihr Office365-Konto einzuloggen (dasselbe Konzept wie im Abschnitt "Aktivieren der Benutzeranmeldung für die Remote-Authentifizierung" im obigen Artikel).
Also habe ich versucht zu sehen, ob ich irgendwie Zugang zu diesen FedAuth
-Cookies bekommen kann, indem ich mich in Office365-Account über UIWebView
anmelde, aber [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]
hat mich nicht auf HTTPOnly-Cookies zugreifen lassen.
Gibt es eine Möglichkeit, die Anspruchsauthentifizierung für iPhone-Apps zu erreichen, ohne dass ein benannter .NET-Zwischendienst für die Behandlung von Authentifizierungen erforderlich ist oder der Benutzer die HTTPOnly-Eigenschaft für diese Cookies deaktivieren muss?
Entschuldigung, ich bin sehr neu in SharePoint, sodass ich vielleicht nicht einmal in die richtige Richtung schaue, aber ich würde mich über jeden Rat freuen, wenn die Anspruchsauthentifizierung für iPhone-Apps funktioniert. Vielen Dank im Voraus!
Ich habe es selbst herausgefunden. Musste über meine eigene Dummheit und Ungeduld lachen.
Zunächst können Sie mit [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]
DO auf HTTPOnly-Cookies zugreifen. Wenn sich der Benutzer jedoch bei Office 365 an der Methode UIWebView
anmeldet, wird die Methode (void)webViewDidFinishLoad:(UIWebView *)webView
delegate mehrmals aufgerufen, sodass Sie nur warten müssen, bis FedAuth im Cookie-Jar erscheint.
Hier ist meine (void)webViewDidFinishLoad:(UIWebView *)webView
Implementierung;
Sobald Sie den Cookie erhalten haben, müssen Sie ihn nur an die Methode NSURLRequest
mit (void)setAllHTTPHeaderFields:(NSDictionary *)headerFields
anhängen, wenn Sie SharePoint-Webdienste aufrufen.
Hoffe das hilft jemandem.
Tags und Links iphone ios sharepoint sharepoint-2010 claims-based-identity