Auze AD Authentication is not working inside webservice method call

asked 2020-09-07T04:24:39.02+00:00
Sathish Bonifash 1 Reputation point

Dear Experts,

I am facing challenge to implement Azure AD authentication in my existing application which is webservice (asmx) method.

I have implemented AAD authentication logic in console application its works fine with out any issue.

But its not working while i connect and getting token id its shows following error messages, could you please help to give your advices. greatly appreciated i have to complete it ASAP.

System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type System.Threading.Tasks.Task`1[[System.Threading.Tasks.VoidTaskResult, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write2_Task(String n, String ns, Task o, Boolean isNullable, Boolean needType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3_Task(Object o)
at Microsoft.Xml.Serialization.GeneratedAssembly.TaskSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter writer)
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id)
at System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, Object o, XmlSerializerNamespaces namespaces)
at System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse response, Stream outputStream, Object returnValue)
at System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(Object[] returnValues, Stream outputStream)
at System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] returnValues)
at System.Web.Services.Protocols.WebServiceHandler.Invoke()

Code Sample:
22952-image.png

Azure Web Apps
Azure Web Apps
A feature of Azure App Service used to create and deploy scalable, mission-critical web apps.
4,305 questions
Azure Active Directory
Azure Active Directory
An Azure enterprise identity service that provides single sign-on and multi-factor authentication.
12,574 questions
{count} votes

1 answer

Sort by: Most helpful
  1. answered 2020-09-08T04:58:33.933+00:00
    soumi-MSFT 11,591 Reputation points Microsoft Employee

    @Sathish Bonifash , I believe the AcquireTokenForClient() function fails as it is used to implement Client_Credentials flow, but as discussed here in this thread https://learn.microsoft.com/en-us/answers/questions/86362/create-event-in-outlook-calendar-using-azure-ad-ge.html, you would need to use the Authorization Code Grant flow or OpenIDConnect to get this thing working.

    You can refer to the following sample: https://github.com/AzureAdQuickstarts/AppModelv2-WebApp-OpenIDConnect-DotNet

    Hope this helps.

    Do let us know if this helps and if there are any more queries around this, please do let us know so that we can help you further. Also, please do not forget to accept the response as Answer; if the above response helped in answering your query.