8

Tôi đang phát triển một ứng dụng Windows Store giao tiếp với Dynamics CRM Online bằng Azure Active Directory để xác thực.Đăng nhập Azure Active Directory (mã thông báo rõ ràng)

Ứng dụng sử dụng này CRM 2013 SDK dụ: SampleCode\CS\ModernAndMobileApps\ModernSoapApp

và đề cập đến gói NuGet này cho xác thực:

Microsoft.Preview.WindowsAzure.ActiveDirectory.Authentication

Tôi có thể xác nhận một cách chính xác, dòng chính là thế này:

AuthenticationResult result = await _authenticationContext.AcquireTokenAsync("Microsoft.CRM", ClientID, redirectUrl, string.Empty, string.Empty); 

Vấn đề là tôi cần thêm chức năng đăng xuất và tôi không thể thoát khỏi o f mã thông báo liên tục.

tôi đã cố gắng để làm một logout với dòng sau:

(AuthenticationContext.TokenCache as DefaultTokenCache).Clear(); 

nhưng ứng dụng có khả năng để nhận mã hợp lệ bởi bản thân khi tôi gọi lại phương pháp AcquireTokenAsync thay vì hiển thị trang là để nhập các thông tin.

Tôi thiếu gì để thực hiện đăng xuất đầy đủ?

+0

Bạn đã giải quyết vấn đề này bằng cách nào? Tôi đang gặp rắc rối với ứng dụng WPF, khi tôi kiểm tra "Remember Me" trong cửa sổ popup và đăng nhập, tôi không thể đăng xuất. – Dabbas

+0

cách giải quyết khác là buộc một lần khác xác thực bằng mật khẩu sai, thông thường nó đặt lại mã thông báo –

Trả lời

15

Nếu bạn cũng muốn đăng xuất người dùng ra khỏi STS, hãy đưa ra yêu cầu đăng xuất: https://login.windows.net/ {tenantid hoặc "common"}/oauth2/logout? Post_logout_redirect_uri = {URL}. URL cần phải là url trả lời được đăng ký với ứng dụng của bạn trong AAD.

Bạn đang xóa bộ nhớ cache thông tin xác thực cục bộ. Im lặng im lặng có thể xảy ra do cookie STS (Fiddler theo dõi khi bạn gọi lại cho AcquireTokenAsync)?

Hy vọng điều đó sẽ hữu ích.

+1

Tôi googled và có vẻ như url là 'https://login.windows.net/common/oauth2/logout?post_logout_redirect_uri= ' bạn có ví dụ C# để gọi url này cho đăng xuất không? –

+1

Có thực hiện sửa đổi ở trên. Tôi vẫn quen với thực tế là trình soạn thảo SO giấu những thứ giữa các dấu ngoặc nhọn. Tôi không có một ví dụ C# tiện dụng. Để tôi tìm một cái. –

+0

WTF Tôi đã tìm kiếm ở khắp mọi nơi cho điều này trên MSDN:/ –

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