With just a few lines of code, your C# ASP.NET application can verify phone numbers and add an additional layer of security with Twilio Verify.
This C# Verify Quickstart will teach you how to do this using our Verify REST API, the Twilio C# helper library, and C# ASP.NET Core to ease development.
In this Quickstart, you will learn how to:
Short on time? Spin up a low-code, fully editable verification demo in less than 2 minutes using Twilio's Code Exchange and Quick Deploy here.
If you already have a Twilio account, you're all set here! Feel free to jump to the next step.
Before you can send an SMS from C#, you'll need to sign up for a Twilio account or sign into your existing account.
You can sign up for a free Twilio trial account here.
If you've sent SMS with Twilio in the past, you might remember needing to buy a phone number. With Twilio Verify, we take care of that for you! The Verify API selects the best routes for quickly and reliably delivering verification codes globally.
Verify uses Services for configuration. To send a Verify API request you will need both your Twilio Credentials and a Service SID. You can create and update a Service in two ways:
Services can be used to edit the name (which shows up in the message template), set the code length (4-10 characters), enable settings like the "do not share warning" and more.
Now that you have a Twilio account and a verification service, you can start writing some code! To make things even easier we will use Twilio's official helper for C# and .NET applications.
If you've gone through one of our other .NET Core Quickstarts already and have .NET Core installed, you can skip this step and get straight to sending your first verification.
To start a phone verification and send your first SMS, you'll need to have the .NET Core SDK installed - if you don't know if you have the .NET Core installed, run the following command to see what version you have:
dotnet --version
You should see something similar to this output:
2.X.XXX
The Twilio SDK requires .NET Framework version 3.5 or higher or any .NET runtime supporting .NET Standard v1.4.
If you have a not supported version of .NET Core or no .NET Core at all, you'll need to install the .NET Core SDK before going any further. Follow the directions for installing the .NET Core SDK for your platform (Windows, Mac, Linux) from the Microsoft .NET Download Page.
Should you prefer to use .NET Framework instead of .NET Core the instructions for building and running the project will be different and you will need to change the targeted framework. Besides that, the code should work straight away.
1// Install the C# / .NET helper library from twilio.com/docs/csharp/install23using System;4using Twilio;5using Twilio.Rest.Verify.V2.Service;6using System.Threading.Tasks;78class Program {9public static async Task Main(string[] args) {10// Find your Account SID and Auth Token at twilio.com/console11// and set the environment variables. See http://twil.io/secure12string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");13string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");1415TwilioClient.Init(accountSid, authToken);1617var verification = await VerificationResource.CreateAsync(18to: "+15017122661",19channel: "sms",20pathServiceSid: "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");2122Console.WriteLine(verification.Status);23}24}
1{2"sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"to": "+15017122661",6"channel": "sms",7"status": "pending",8"valid": false,9"date_created": "2015-07-30T20:00:00Z",10"date_updated": "2015-07-30T20:00:00Z",11"lookup": {},12"amount": null,13"payee": null,14"send_code_attempts": [15{16"time": "2015-07-30T20:00:00Z",17"channel": "SMS",18"attempt_sid": "VLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"19}20],21"sna": null,22"url": "https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Verifications/VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"23}
1// Install the C# / .NET helper library from twilio.com/docs/csharp/install23using System;4using Twilio;5using Twilio.Rest.Verify.V2.Service;6using System.Threading.Tasks;78class Program {9public static async Task Main(string[] args) {10// Find your Account SID and Auth Token at twilio.com/console11// and set the environment variables. See http://twil.io/secure12string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");13string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");1415TwilioClient.Init(accountSid, authToken);1617var verificationCheck = await VerificationCheckResource.CreateAsync(18to: "+15017122661",19code: "123456",20pathServiceSid: "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");2122Console.WriteLine(verificationCheck.Status);23}24}
1{2"sid": "VEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",3"service_sid": "VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",4"account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",5"to": "+15017122661",6"channel": "sms",7"status": "approved",8"valid": true,9"amount": null,10"payee": null,11"sna_attempts_error_codes": [],12"date_created": "2015-07-30T20:00:00Z",13"date_updated": "2015-07-30T20:00:00Z"14}
Start by cloning our C# ASP.NET Core repository.
git clone git@github.com:TwilioDevEd/verify-v2-quickstart-csharp.git
If you don't have git installed or prefer to download the source code you can grab a zip file of the project here.
Twilio C# .NET Helper Library is already in the dependencies of the project. Building the project will download them.
1cd verify-v2-quickstart-csharp/VerifyV2Quickstart/23dotnet build4
Create a new file twilio.json
and update the content. It will store your Twilio Account sensitive data. You can find your Account SID and Auth Token in the Twilio Console. Create a new Verification Service in the console and add the Verification SID to your twilio.json
file.
1{2"Twilio": {3"AccountSid": "Your Twilio Account SID",4"AuthToken": "Your Twilio Auth Token",5"VerificationSid": "Your Verify Service SID"6}7}
Run the application
1dotnet ef database update23dotnet run
If your credentials are set up correctly you'll soon get a message that the app is up!
Navigate to http://localhost:5000/Identity/Account/Register. You should see a registration form that looks like this:
Enter your phone number and choose which channel to request verification over. Finally hit the green Sign Up
button and wait. You'll either receive a phone call or an SMS with the verification token. If you requested a phone call, as an additional security feature you may need to interact to proceed (the call will tell you to enter a number on the phone keypad).
Enter the token into the Verification entry form and click 'Verify':
And with that, your demo app is protected with Twilio's Phone Verification!
Your demo app is now keeping fraudulent users from registering with your business and polluting your database. Next, check out all of the variables and options available to you in the Verify API Reference.
After that, check out adding additional verification channels supported by the Verify API like:
Lastly, to protect your service against fraud, view our guidance on Preventing Toll Fraud when using Verify.