Kolumne: Silverlight Expertise

Implicit DataTemplates PropertyChanged-Event typsicher aufrufen und Windows-Live-Anwender authentifizieren (Teil 2)
Kommentare

Menü 3 für Windows Phone 7: mit Windows Live den Anwender authentifizieren
Das Windows Phone ist direkt mit der Cloud-Plattform Live Connect verknüpft, so hat jeder Windows-Phone-Anwender eine Windows

Menü 3 für Windows Phone 7: mit Windows Live den Anwender authentifizieren

Das Windows Phone ist direkt mit der Cloud-Plattform Live Connect verknüpft, so hat jeder Windows-Phone-Anwender eine Windows Live ID. Das mag für viele sehr unangenehm sein, erleichtert allerdings dem Entwickler die Authentifizierung. Um diesen Service für eigene Apps verwenden zu können, muss vorerst auf dem Live Connect Developer Center [4] unter MY APPS die eigene App kostenfrei eingetragen werden (Abb. 1).

Abb. 1: Kostenfrei beim Live Connect Developer Center unter
Abb. 1: Kostenfrei beim Live Connect Developer Center unter „My Apps“ die eigene App eintragen

Wichtig ist, dass der Punkt MOBILE CLIENT APP aktiviert wird. Sofort wird eine eigene Instanz mit den benötigten Daten erstellt (Abb. 2).

Abb. 2: Die benötigte Client-ID unter den App-Details
Abb. 2: Die benötigte Client-ID unter den App-Details

Anschließend muss das Live SDK [5] installiert werden. Für Windows Phone wurden die Assemblies Microsoft.Live.dll und Microsoft.Live.Controls.dll installiert. Sie werden im eigenen Windows-Phone-Projekt referenziert. Für das Öffnen vom Windows-Live-ID-Login, wird ein UserControl mit einem SIGN IN-Button bereitgestellt. Diesen fügt man manuell mittels Rechtsklick auf die Toolbox unter CHOOSE ITEMS… hinzu. Dazu im folgenden Dialog das SignInButton-Control markieren und mit OK hinzufügen (Abb. 3).

Abb. 3: SignInButton Control zur Toolbox hinzufügen
Abb. 3: SignInButton Control zur Toolbox hinzufügen

Dann wird das neue UserControl in der Toolbox angezeigt. Es wird auf die Oberfläche gezogen und das SessionChanged-Event wird abonniert. Das Event wird ausgelöst, wenn das UserControl beim Initialisieren eine Verbindung zu Live Connect hatte und die benötigten Sessiondaten erhalten konnte. Dazu muss beim SignInButton die ClientId und der gewünschte Scopes-Bereich deklariert werden (Listing 5). Eine Liste der möglichen Scopes befindet sich unter MSDN [6].

Listing 5: MainPage.xaml mit SignInButton Control


    
    
  

Wenn eine gültige Session aufgebaut werden konnte, kann asynchron auch schon die Authentifizierung gestartet werden. Dazu öffnet Windows Phone einen speziellen Browser-Layer innerhalb der App und lädt die Windows-Live-Login-Website. Wenn der Anwender sich authentifiziert hat, wird nach einer weiteren Genehmigung zur Weitergabe der Daten an die App gefragt (Abb. 4).

Abb. 4: Die Authentifizierung mittels Windows-Live-ID
Abb. 4: Die Authentifizierung mittels Windows-Live-ID

Wenn diese Schritte erfolgreich durchgeführt wurden, kann auf die Benutzerdaten via LiveOperationCompletedEventArgs zugegriffen werden (Listing 6).

Listing 6: Sourcecode zur Authentifizierung via Live Connect

public partial class MainPage : PhoneApplicationPage
{
    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }

    private LiveConnectClient _liveConnectClient;

    private void SignInButtonOnSessionChanged(object sender, Microsoft.Live.Controls.LiveConnectSessionChangedEventArgs e)
    {
        if(e.Status == LiveConnectSessionStatus.Connected)
        {
            _liveConnectClient = new LiveConnectClient(e.Session);
            _liveConnectClient.GetCompleted += OnGetCompleted;
            _liveConnectClient.GetAsync("me");
        }
    }

    private void OnGetCompleted(object sender, LiveOperationCompletedEventArgs e)
    {
        if(e.Error == null)
        {
            textBlock1.Text = "Hallo " + e.Result["name"];
        }
        else
        {
            textBlock1.Text = e.Error.Message;
        }
    }
}  

Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte in der Firma impuls Informationsmanagement GmbH in Nürnberg. Seine Schwerpunkte sind die .NET-Architektur, Silverlight und agile Prozesse. Er veröffentlichte vor Kurzem seine DVD mit Videotrainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain. Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter www.dotnet-blog.net.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -