Proposed Pull Request Change

author ms.service ms.topic ms.date ms.author
clemensv azure-relay include 01/24/2026 samurp
📄 Document Links
GitHub View on GitHub Microsoft Learn View on Microsoft Learn
Content Truncation Detected
The generated rewrite appears to be incomplete.
Original lines: -
Output lines: -
Ratio: -
Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
+0 -0
+0 -0
--- author: clemensv ms.service: azure-relay ms.topic: include ms.date: 01/24/2026 ms.author: samurp --- ### Create a console application If you disabled the "Requires Client Authorization" option when creating the Relay, you can send requests to the Hybrid Connections URL with any browser. For accessing protected endpoints, you need to create and pass a token in the `ServiceBusAuthorization` header, which is shown here. In Visual Studio, create a new **Console App (.NET Framework)** project. ### Add the Relay NuGet package 1. Right-click the newly created project, and then select **Manage NuGet Packages**. 2. Select **Include prerelease** option. 3. Select **Browse**, and then search for **Microsoft.Azure.Relay**. In the search results, select **Microsoft Azure Relay**. 5. Select **Install** to complete the installation. Close the dialog box. ### Write code to send requests 1. At the top of the Program.cs file, replace the existing `using` statements with the following `using` statements: ```csharp using System; using System.IO; using System.Threading; using System.Threading.Tasks; using System.Net.Http; using Microsoft.Azure.Relay; ``` 2. Add constants to the `Program` class for the hybrid connection details. Replace the placeholders in brackets with the values that you obtained when you created the hybrid connection. Be sure to use the fully qualified namespace name. ```csharp // replace {RelayNamespace} with the name of your namespace private const string RelayNamespace = "{RelayNamespace}.servicebus.windows.net"; // replace {HybridConnectionName} with the name of your hybrid connection private const string ConnectionName = "{HybridConnectionName}"; // replace {SAKKeyName} with the name of your Shared Access Policies key, which is RootManageSharedAccessKey by default private const string KeyName = "{SASKeyName}"; // replace {SASKey} with the primary key of the namespace you saved earlier private const string Key = "{SASKey}"; ``` 3. Add the following method to the `Program` class: ```csharp private static async Task RunAsync() { var tokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider( KeyName, Key); var uri = new Uri(string.Format("https://{0}/{1}", RelayNamespace, ConnectionName)); var token = (await tokenProvider.GetTokenAsync(uri.AbsoluteUri, TimeSpan.FromHours(1))).TokenString; var client = new HttpClient(); var request = new HttpRequestMessage() { RequestUri = uri, Method = HttpMethod.Get, }; request.Headers.Add("ServiceBusAuthorization", token); var response = await client.SendAsync(request); Console.WriteLine(await response.Content.ReadAsStringAsync()); Console.ReadLine(); } ``` 4. Add the following line of code to the `Main` method in the `Program` class. ```csharp RunAsync().GetAwaiter().GetResult(); ``` The Program.cs should look like this: ```csharp using System; using System.IO; using System.Threading; using System.Threading.Tasks; using System.Net.Http; using Microsoft.Azure.Relay; namespace Client { class Program { private const string RelayNamespace = "{RelayNamespace}.servicebus.windows.net"; private const string ConnectionName = "{HybridConnectionName}"; private const string KeyName = "{SASKeyName}"; private const string Key = "{SASKey}"; static void Main(string[] args) { RunAsync().GetAwaiter().GetResult(); } private static async Task RunAsync() { var tokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider( KeyName, Key); var uri = new Uri(string.Format("https://{0}/{1}", RelayNamespace, ConnectionName)); var token = (await tokenProvider.GetTokenAsync(uri.AbsoluteUri, TimeSpan.FromHours(1))).TokenString; var client = new HttpClient(); var request = new HttpRequestMessage() { RequestUri = uri, Method = HttpMethod.Get, }; request.Headers.Add("ServiceBusAuthorization", token); var response = await client.SendAsync(request); Console.WriteLine(await response.Content.ReadAsStringAsync()); } } } ``` > [!NOTE] > The sample code in this article uses a connection string to authenticate to an Azure Relay namespace to keep the tutorial simple. We recommend that you use Microsoft Entra ID authentication in production environments, rather than using connection strings or shared access signatures, which can be more easily compromised. For detailed information and sample code for using the Microsoft Entra ID authentication, see [Authenticate and authorize an application with Microsoft Entra ID to access Azure Relay entities](../authenticate-application.md) and [Authenticate a managed identity with Microsoft Entra ID to access Azure Relay resources](../authenticate-managed-identity.md).
Success! Branch created successfully. Create Pull Request on GitHub
Error: