Lassen Sie mich die Schritte erklären. Sie können immer noch Active Directory Authentication Library in den UWP Apps verwenden.
Um es zu tun müssen Sie NuGet-Paket hinzufügen (Ich habe den obigen Link eingefügt). Sobald Sie es dort zu tun gibt nur wenige Schritte Authentifizierung in Ihrer Anwendung zu implementieren:
1) Speichern von Informationen zur Authentifizierung benötigt (zum Beispiel im App.xaml.cs Konstruktor):
var localSettings = ApplicationData.Current.LocalSettings;
localSettings.Values["ida:AADInstance"] = "https://login.windows.net/{0}";
localSettings.Values["ida:Tenant"] = "<<Name of your tenant here>>";
localSettings.Values["ida:ClientId"] = "<<Client ID Here>>";
localSettings.Values["ida:RedirectUri"] = "<<Redirect URI here>>";
localSettings.Values["ApiBaseAddress"] = "<<ID of Api Resource here>>";
localSettings.Values["ServiceAddress"] = "<<Address of your Api here>>";
Nun ist die schreiben Code zur Authentifizierung (dies ist Helper-Klasse):
class ADContextHelper
{
ApplicationDataContainer _localSettings;
AuthenticationContext _authContext;
string _aadInstance;
string _tenant;
string _clientId;
Uri _redirectUri;
string _authority;
string _apiResourceId;
string _apiBaseAddress;
public ADContext()
{
_localSettings = ApplicationData.Current.LocalSettings;
configureSettings();
_authContext = new AuthenticationContext(_authority);
}
private void configureSettings()
{
_aadInstance = _localSettings.Values["ida:AADInstance"].ToString();
_tenant = _localSettings.Values["ida:Tenant"].ToString();
_clientId = _localSettings.Values["ida:ClientId"].ToString();
_redirectUri = new Uri(_localSettings.Values["ida:RedirectUri"].ToString());
_authority = String.Format(_aadInstance, _tenant);
_apiResourceId = _localSettings.Values["ApiResourceId"].ToString();
_apiBaseAddress = _localSettings.Values["ApiBaseAddress"].ToString();
}
public async Task<string> Authenticate()
{
AuthenticationResult authResult = await _authContext.AcquireTokenAsync(_apiResourceId, _clientId, _redirectUri);
//Here you retrieve the token:
var token = authResult.AccessToken;
return token;
}
}
Am Ende habe ich auch Code für Abmeldung enthalten - vielleicht wollen Sie es schließen:
public async Task<bool> Logout()
{
string requestUrl = "https://login.microsoftonline.com/" + _tenant + "/oauth2/logout?post_logout_redirect_uri=" + _redirectUri;
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, requestUrl);
var response = await client.SendAsync(request);
}
Ich hoffe, das wird Ihnen helfen.
meine UWP App funktioniert nicht mit AAD, ich kann mich mit Browser und Endpunkt wie folgt anmelden [link] (https://contoso.azurewebsites.net/.auth/login/aad/callback), aber wenn ich versuche, mich anzumelden UWP App verwenden, ich habe Ressource kann nicht gefunden werden Fehler nach dem Bring aufgefordert, ein Fenster und nachdem ich meine E-Mail-Adresse eingeben und drücken Sie die Eingabetaste. Bedeutet das, dass ich meine native App nicht auch in Azure AD eingerichtet habe? und ich habe nur den Azure Mobile App-Endpunkt eingerichtet? – yanglinfang1226