Office 365 : Connecting to SharePoint online site using CSOM when Multi-Factor Authentication (MFA) is enabled for the user


Today, in this article we will discuss how to connect to SharePoint online site through an account for which Multi-Factor authentication is enabled. We will also discuss one of the exception which we got.

Background: We have our SharePoint online site. For one of our requirement we need to write tool. So we decided to go with CSOM (Client Side Object Model) approach through console application. So we decided to go with CSOM approach through console application – “The sign-in name or password does not match one in the Microsoft account system.

Following is our normal code to connect the SharePoint online site through CSOM


But we were getting following error –

CSOM exception while connecting with account where MFA enabled
Figure 1 : Exception while connection to SharePoint online with an account MFA enabled

We verified our user names and password and seems to be ok. Also previously same code used to work. We were wondering why this is happening. As usual, after googling a bit found one nice article – and then we got clue from above article. We had recently enabled Multi-Factor Authentication on our Office 365 site. Each user not only need to enter their credentials but need to enter the code from authenticator app. This is the main reason the above sample code is not working. It was throwing an above exception.

Approach to connect SharePoint online through CSOM when Multi-Factor Authentication is enabled:

We have to use PnP Core library, if it is not installed on your environment then please install it using NuGet manager. In NuGet manager we can search PnP core library with the string “SharePointPnPCoreOnline” as

NuGetmanager - SharePointPnPCoreOnline
Figure 2 : PnP core library in NuGet manager – SharePoint PnPCoreOnline

Once PnP core library installed, we will use following code to connect the SharePoint online in our console application

When we run the application, prompt will be asked to enter the credentials as

prompt to enter the credentials
Figure 3 : Prompt to enter the credentials to connect SharePoint online when MFA enabled

Once we entered the credentials, next prompt will be for entering the code from authenticator app as

prompt to enter the code
Figure 4 : Prompt for entering code from Authenticator app to connect SharePoint online when MFA enabled

Once we enter the code from our authenticator app, we will get connected to SharePoint online.

In this way we will connect to SharePoint online when Multi-Factor Authentication (MFA) is enabled.

Keep reading, share your thoughts, experiences. Feel free to contact us to discuss more. If you have any suggestion / feedback / doubt, you are most welcome.

Stay tuned on Knowledge-Junction, will come up with more such articles.

Thanks for reading 🙂



11 comments on “Office 365 : Connecting to SharePoint online site using CSOM when Multi-Factor Authentication (MFA) is enabled for the user”
  1. System.ArgumentNullException: ‘Value cannot be null.’
    coming like this

    1. Sorry Deepak, your comment is ignored by mistake. Still facing the same issue, where is this error coming. Please share more details.

  2. Arunkumar says:

    I hope this blog helps to connect current user of system alone. I would like to connect configured user in App.config file. Thanks in advance

    1. Hi, yes currently in example in blog is specified like that way. But we can read the user details from app.config file as well.

      But I would like highlight one more thing is, it requires me verification code, so if I want to schedule something then it is difficult. Better options is to run the job on be half app either SharePoint hosted app or Azure App.

  3. ph says:


    I found your article as I was searching for a solution to make use of the 2FA with C#.
    The login works like a charm with the PnP library.

    Now, I would like to logout. I have not found any possibility to logout again. Can anybody help please?

    1. I’ll check once and update.

      1. ph says:

        Right, I can’t find a method either. So, I was thinking about deleting the cookies in the CookieContainer, that the PnP library introduced. But after restarting the app, the cookies were back.
        I tried calling the logout url, but I think I called it in the wrong context. Can you think about any workaround? It feels a bit weird, that there is no possibility for logout.

  4. MK says:

    Thank you!

Leave a Reply to MK Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.