Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
sonsi
Regular Visitor

Connecting through c#

Hi,

 

I am using code that was written for Microsoft Analysis Service, I changed my connection string to another server which is holding PBI Datasets inside. The code seems to work, but since there is a 2 way authentication process in my team, the code can't run from a machine. 

I want to use a token instead. Will this remove the need for the other authentication?

If so - what is the proper way to connect with the token?

I succeeded on getting the token, but I can't find the proper way to connect with it.

 

Right now the code looks like -

 

 

                Microsoft.AnalysisServices.Server server = new Microsoft.AnalysisServices.Server();

                try
                {
                    server.Connect(string.Format("Data source={0};", serverName));
}...

 

What am I missing?

Thanks 

1 REPLY 1
v-yiruan-msft
Community Support
Community Support

Hi @sonsi ,

You can refer the following links to connect to an Analysis Services server using a token in C#:

Get the access token:

How to get Azure Access Token using C# - JD Bots (jd-bots.com)

Connection:

Azure Analysis Services: How to open a connection from .NET | endjin - Azure Data Analytics Consulta...

c# - How to authenticate with Azure Analysis Services from Azure batch and data factory

var authority = "https://login.windows.net/<tenant-id>";
var resource = "https://southcentralus.asazure.windows.net";
var appId = "***";
var appSecret = "***";

AuthenticationContext authContext = new AuthenticationContext(authority);
ClientCredential credentials = new ClientCredential(appId, appSecret);
var task = authContext.AcquireTokenAsync(resource, credentials);
task.Wait();
string token = task.Result.AccessToken;

var connectionStringTemplate = "Provider=MSOLAP;Data Source=asazure://southcentralus.asazure.windows.net/xxxxxx;Initial Catalog= xxx;User ID=;Password={0};Persist Security Info=True;Impersonation Level=Impersonate";
var connectionString = string.Format(CultureInfo.InvariantCulture, connectionStringTemplate, token);

var server = new Server();
server.Connect(connectionString);

Best Regards

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors