2017-07-11 27 views
0

Xamarinフォームで依存関係サービスを使用してADAL認証を実装しました。ユーザーのパスワードが最近変更されたときに、クライアントアプリケーションでアクセストークンを取得できないという奇妙な問題が発生しました。ADAL認証の問題 - Xamarinフォーム

リフレッシュされたアクセストークンを取得するために、最新の資格情報を更新するようユーザーに求めることです。しかし、これは動作していないようです。 UWPため

コード:

[assembly: Dependency(typeof(SampleApp.UWP.Helper.Authenticator))] 

名前空間SampleApp.UWP.Helper {クラスの認証:IAuthenticator {

public string ReturnUri = Windows.Security.Authentication.Web.WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString(); 
    public async System.Threading.Tasks.Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri=null) 
    { 
     var authContext = new AuthenticationContext(authority); 
     var authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(ReturnUri), 
      new PlatformParameters(PromptBehavior.Auto,true)); 
     return authResult; 
    } 
} 

}

おかげで、

カルティク
+0

実際に間違っていますか?間違いはありますか?そのコードが「うまくいかない」という事実の他に、実際のエラーや問題はありませんでした。ほとんどの人は、エラーの説明やエラーの動作など、より多くの情報を必要とします。 –

答えて

0

トークンが存在しないことが検出された場合(それを行っていても)、「notoken」を取得した後にログアウトしてください。

using Microsoft.IdentityModel.Clients.ActiveDirectory; 
using Windows.Web.Http; 
using Windows.Web.Http.Filters; 

    public void Logout(AuthenticationContext authContext) 
    { 
     var filter = new HttpBaseProtocolFilter(); 
     filter.ClearAuthenticationCache(); 
     AuthContextHelper.AuthContext.TokenCache.Clear(); 
     HttpCookieCollection myCookies = filter.CookieManager.GetCookies(new System.Uri(Constants.authority)); 
     foreach (HttpCookie cookie in myCookies) 
     { 
      filter.CookieManager.DeleteCookie(cookie); 
     } 
    } 
関連する問題