2011-12-14 34 views
5

Tôi đang làm việc trên một trang sử dụng API kết nối trực tiếp.API kết nối trực tiếp Live: Đăng nhập người dùng?

(Tài liệu ở đây: http://msdn.microsoft.com/en-us/windowslive/default)

Sử dụng ví dụ từ các liên kết dưới đây tôi có thể đăng nhập người dùng và yêu cầu chấp thuận cho hành động nhất định.

Tuy nhiên, tôi có một số câu hỏi liên quan đến điều này:

  • Làm thế nào tôi có thể bỏ qua yêu cầu sự đồng ý khi người dùng đã được cấp có sự đồng ý trước?
  • Cách lưu trữ 'access_token' giữa ứng dụng sẽ chạy là gì?
  • Tôi làm cách nào để sử dụng dấu hiệu đơn lẻ bằng cách sử dụng API Rest?

Ký trong: http://msdn.microsoft.com/en-us/windowslive/hh278363#rest

Cảm ơn!

Trả lời

1
  • Nếu trước đây người dùng đã đồng ý bạn cần, Trực tiếp sẽ không nhắc người dùng cấp lại. Bạn không cần bỏ qua thủ công.
  • Tôi không biết nền tảng của bạn là gì, nhưng bạn có thể thấy một cách nào đó để làm cho bộ nhớ của ứng dụng bị cô lập hoặc được mã hóa. Điều quan trọng là mã thông báo có thời gian hết hạn. Bạn cũng có thể xem xét sử dụng bộ điều khiển mà Microsoft cung cấp, có thể xử lý tất cả những thứ có liên quan đến Đăng nhập trực tiếp. Dưới đây là ví dụ WP8 của tôi:

Thêm này trong file XAML:

<Controls:SignInButton Grid.Row="0" ClientId="yourid" Scopes="wl.offline_access wl.skydrive_update" HorizontalAlignment="Right" VerticalAlignment="Bottom" SessionChanged="OnSessionChanged" 
           Margin="0,0,0,0" Width="160" Height="70" Background="Transparent" BorderBrush="{StaticResource TransparentBrush}" /> 

Trước đó, thêm dòng này vào cùng một file:

xmlns:Controls="clr-namespace:Microsoft.Live.Controls;assembly=Microsoft.Live.Controls" 

Và sự kiểm soát sẽ trông giống như này: enter image description here

Nó sẽ tự động cập nhật khi người dùng đăng nhập hoặc đăng xuất.

Trong mã # C của bạn, thêm xử lý sự kiện OnSessionChanged với nó:

private void OnSessionChanged(object sender, LiveConnectSessionChangedEventArgs e) 
    { 
     //sign in 
     if (e.Error != null) 
     { 
      MessageBox.Show(e.Error.Message); 
      return; 
     } 

     if (e.Status == LiveConnectSessionStatus.Connected) 
     { 
      ((App) Application.Current).Session = e.Session; 
      connectClient = new LiveConnectClient(((App) Application.Current).Session); 
         } 
     } 
    } 
  • Bài viết này có thể hữu ích herehere
0

Bạn đã xem qua đây chưa: http://msdn.microsoft.com/en-us/library/live/hh243646.aspx#wlsignin? Nó sẽ xử lý bỏ qua yêu cầu chấp thuận và đăng nhập một lần (tức là nếu người dùng đăng nhập vào Trực tiếp thì được chuyển hướng đến trang auth, auth tự động diễn ra mà không cần người dùng thực hiện thêm bất kỳ hành động nào).

Các vấn đề liên quan