Programming Tutorials

Microsoft.Identity vs Microsoft.IdentityModel.Clients.ActiveDirectory

By: Linda Ng in Asp.net Tutorials on 2023-06-01  

To work with the newer Microsoft.Identity package instead of the deprecated Microsoft.IdentityModel.Clients.ActiveDirectory, you can use the ConfidentialClientApplicationBuilder class to acquire a token.

Here's an updated version of your code using the new package:

using Microsoft.Identity.Client;

string authority = "https://login.microsoftonline.com/" + TenantId;
string clientId = "YourClientId";
string clientSecret = "YourClientSecret";
string crmUrl = "YourCrmUrl";

var app = ConfidentialClientApplicationBuilder
    .Create(clientId)
    .WithClientSecret(clientSecret)
    .WithAuthority(authority)
    .Build();

string[] scopes = { crmUrl + "/.default" };

var authResult = await app.AcquireTokenForClient(scopes).ExecuteAsync();

string accessKey = authResult.AccessToken;

Make sure to replace "YourClientId", "YourClientSecret", and "YourCrmUrl" with your actual values.

In the updated code, we create a ConfidentialClientApplicationBuilder and provide the required parameters such as client ID, client secret, and authority. Then, we acquire a token for the client using the AcquireTokenForClient method with the desired scopes. The resulting access token can be obtained from the AccessToken property of the AuthenticationResult.

Please note that you may need to adjust the scopes and their format according to your Dynamics 365 setup.

Remember to install the Microsoft.Identity NuGet package to use the new package in your project.






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in Asp.net )

What is ASP.NET?

Visual Basic .NET Vs Visual C# - (Differences)

Advantages of Stored Procedures

ASP Versus ASP.NET Events

IsPostBack in ASP.net

Microsoft.Identity vs Microsoft.IdentityModel.Clients.ActiveDirectory

Things to note when changing a function to async in your controller

Severity Code Description Project File Line Suppression State Error CS0308 The non-generic type 'List' cannot be used with type arguments.

Button that is only clickable when the checkbox is checked

Pass the same model to multiple views within the same controller

Severity Code Description Project File Line Suppression State Error CS0103 The name 'Encoding' does not exist in the current context

Severity Code Description Project File Line Suppression State Error CS0103 The name 'JsonConvert' does not exist in the current context.

Passing a model globally to all Views in your Asp.net webapp

Severity Code Description Project File Line Suppression State Error CS0246 The type or namespace name 'JToken' could not be found.

Severity Code Description Project File Line Suppression State Warning Found conflicts between different versions of the same dependent assembly.

Latest Articles (in Asp.net)

Things to note when changing a function to async in your controller

AmbiguousMatchException: The request matched multiple endpoints.

Call an Action in a controller when user clicks a button in View

Button that is only clickable when the checkbox is checked

Pass the same model to multiple views within the same controller

Severity Code Description Project File Line Suppression State Error CS0103 The name 'Encoding' does not exist in the current context

Severity Code Description Project File Line Suppression State Error CS0103 The name 'JsonConvert' does not exist in the current context.

Passing a model globally to all Views in your Asp.net webapp

Severity Code Description Project File Line Suppression State Error CS0246 The type or namespace name 'JToken' could not be found.

Severity Code Description Project File Line Suppression State Error CS0308 The non-generic type 'List' cannot be used with type arguments.

One client credential type required either: ClientSecret, Certificate, ClientAssertion or AppTokenProvider must be defined when creating a Confidential Client. Only specify one

Severity Code Description Project File Line Suppression State Warning Found conflicts between different versions of the same dependent assembly.

Severity Code Description Project File Line Suppression State Error CS1061 'string[]' does not contain a definition for 'Any' and no accessible extension method 'Any' accepting a first argument of type 'string[]' could be found (are you missing a using directive or an assembly reference?)

Pagination in ASP.net core application

Microsoft.Identity vs Microsoft.IdentityModel.Clients.ActiveDirectory

Related Tutorials

Things to note when changing a function to async in your controller

AmbiguousMatchException: The request matched multiple endpoints.

Call an Action in a controller when user clicks a button in View

Button that is only clickable when the checkbox is checked

Pass the same model to multiple views within the same controller

Severity Code Description Project File Line Suppression State Error CS0103 The name 'Encoding' does not exist in the current context

Severity Code Description Project File Line Suppression State Error CS0103 The name 'JsonConvert' does not exist in the current context.

Passing a model globally to all Views in your Asp.net webapp

Severity Code Description Project File Line Suppression State Error CS0246 The type or namespace name 'JToken' could not be found.

Severity Code Description Project File Line Suppression State Error CS0308 The non-generic type 'List' cannot be used with type arguments.

One client credential type required either: ClientSecret, Certificate, ClientAssertion or AppTokenProvider must be defined when creating a Confidential Client. Only specify one

Severity Code Description Project File Line Suppression State Warning Found conflicts between different versions of the same dependent assembly.

Severity Code Description Project File Line Suppression State Error CS1061 'string[]' does not contain a definition for 'Any' and no accessible extension method 'Any' accepting a first argument of type 'string[]' could be found (are you missing a using directive or an assembly reference?)

Pagination in ASP.net core application

Microsoft.Identity vs Microsoft.IdentityModel.Clients.ActiveDirectory