We are setup where employees have work computers on Domain A, and contractors have their work computers on Domain B, but also have accounts on Domain A. (let's say they login to their machine with Domain B\username, and on Domain A they have user.name
When employees access SSAS through Excel, they use the integrated security method to connect to our Cubes, and when using the OlapPivotTableExtensions, everything works great.
For contractors, since their logged into their company's Domain B\username, when connecting to our SSAS server, they can't use integrated authentication, so they specify their Domain A\user.name along with password.
Using this method of authentication works when browsing the cubes, however when using OlapPivotTableExtensions, they get an error message
"A connection cannot be made. Ensure that the server is running. Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host."
Provider=MSOLAP.8;Persist Security Info=True;Initial Catalog=;Data Source= ;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Subqueries=2;Update Isolation Level=2;LocaleIdentifier=1033;Applicatino Name=OLAP PivotTable Extensions v0.9.7.0 (64-bit)
16.0.43.20
\Microsoft.AnalysisServices.AdomdClient.dll
at
Microsoft.AnalysisServices.AdomdClient.XmlaClient.Connect(ConnectionInfo connectionInfo, Boolean beginSession)
at
Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect()
at
Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
at
Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
at
OlapPivotTableExtensions.MainForm.ConnectAdomdClientCube() in
C:\project\OlapPivotTableExtensions\Github\OlapPivotTableExtensions\MainForm.cs:line 878
(apologies for typos, they sent a screenshot and i tried to type it up as best as i could)
I tried looking at the code for MainForm.cs on line 878 and it failed at conncube.open() and I wasn't certain what caused the issue. However a few lines above there was a mention of "removing blank user ids and password" which, when looking at the connection string in the error, didn't have the User ID= line in it.
the connection string in Excel lists it as Provider=MSOLAP.8;Persist Security Info=True;User ID=Domain A\user.name;Initial Catalog=..etc..
//remove blank user IDs and passwords from connection string which resolve an issue with AAS connections failing if either is blank
sConnectionString = sConnectionString.Replace(";Password=\"\"", "");
sConnectionString = sConnectionString.Replace(";Password=;", ";");
sConnectionString = sConnectionString.Replace(";User ID=\"\"", "");
sConnectionString = sConnectionString.Replace(";User ID=;", ";");
sConnectionString = sConnectionString.Replace(";User Id=\"\"", "");
sConnectionString = sConnectionString.Replace(";User Id=;", ";");
sConnectionString = sConnectionString.Replace(";user id=\"\"", "");
sConnectionString = sConnectionString.Replace(";user id=;", ";");
sConnectionString = sConnectionString.Replace(";Uid=\"\"", "");
sConnectionString = sConnectionString.Replace(";Uid=;", ";");
sConnectionString = sConnectionString.Replace(";uid=\"\"", "");
sConnectionString = sConnectionString.Replace(";uid=;", ";");
EnableStrongSecurityProtocol();
try
{
if (!bIsExcel15Model)
{
connCube = new AdomdConnection(sConnectionString, AdomdType.AnalysisServices);
}
else
{
connCube = new AdomdConnection(sConnectionString, AdomdType.Excel);
}
connCube.Open();
}