RDPGW 1.0.0.1744875936

dotnet add package RDPGW --version 1.0.0.1744875936
                    
NuGet\Install-Package RDPGW -Version 1.0.0.1744875936
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RDPGW" Version="1.0.0.1744875936" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RDPGW" Version="1.0.0.1744875936" />
                    
Directory.Packages.props
<PackageReference Include="RDPGW" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RDPGW --version 1.0.0.1744875936
                    
#r "nuget: RDPGW, 1.0.0.1744875936"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=RDPGW&version=1.0.0.1744875936
                    
Install as a Cake Addin
#tool nuget:?package=RDPGW&version=1.0.0.1744875936
                    
Install as a Cake Tool

RDP Gateway .Net (RDPGW.Net)

GitHub License GitHub Actions Workflow Status GitHub last commit (branch) NuGet Version NuGet Downloads codecov

RDPGW.Net is a lightweight and extensible ASP.NET library that brings Remote Desktop Gateway (RDP Gateway) functionality directly into your .NET web application. With easy plug-and-play integration, you can securely expose RDP services through your existing web app, with support for custom authentication and authorization flows.

✨ Features

  • 🖥️ Seamlessly integrate RDP Gateway into any ASP.NET Core app.
  • 🔐 Customizable authentication (Basic, Digest, Negotiate).
  • 🛡️ Fine-grained resource-based authorization.
  • ⚙️ Simple service registration and middleware configuration.

🚀 Getting Started

1. Add the Library

Add the package to your project:

dotnet add package RDPGW --version 

2. Register the Services

In your Program.cs or wherever you're building your service container, add:

builder.Services.AddRDPGW();
Optional: Add Custom Handlers for Authentication and/or Authorization
builder.Services.AddSingleton<IRDPGWAuthenticationHandler, AuthHandler>();
builder.Services.AddSingleton<IRDPGWAuthorizationHandler, AuthorizationHandler>();

3. Use the Middleware

Place this as the first middleware in the pipeline:

var app = builder.Build();

app.UseRDPGW(); // Must be first

// Other middlewares
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
app.Run();

🔐 Authentication & Authorization

Custom Authentication

To authenticate users, implement IRDPGWAuthenticationHandler. The interface provides hooks for Basic, Digest, and Negotiate methods.

public class AuthHandler : IRDPGWAuthenticationHandler
{
    public Task<RDPGWAuthenticationResult> HandleBasicAuth(string auth)
    {
        var challenge = Encoding.UTF8.GetString(Convert.FromBase64String(auth));
        var split = challenge.Split(":");

        var userName = split[0];
        var userPassword = split[1];

        // Your authentication logic here

        return Task.FromResult(RDPGWAuthenticationResult.Success(userName));
    }

    public Task<RDPGWAuthenticationResult> HandleDigestAuth(string auth)
    {
        throw new NotImplementedException(); // Not used in this example.
    }

    public Task<RDPGWAuthenticationResult> HandleNegotiateAuth(string auth)
    {
        throw new NotImplementedException(); // Not used in this example.
    }
}

Custom Authorization

To control access to specific RDP resources, implement IRDPGWAuthorizationHandler:

public class AuthorizationHandler : IRDPGWAuthorizationHandler
{
    public Task<bool> HandleUserAuthorization(string userId, string resource)
    {
        // Your authorization logic here
        return Task.FromResult(true); // Allow access
    }
}

The userId comes from your authentication handler. The resource is the identifier of the RDP target being accessed.

📞 Support & Contribution

  • Found a bug? Want to suggest a feature? Open an issue.
  • Contributions welcome via PRs!
  • License: GNU GPL v3
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net9.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0.1744875936 191 4/17/2025
1.0.0.1744875505 174 4/17/2025
1.0.0.1744874852 178 4/17/2025
1.0.0.1744797680 188 4/16/2025
1.0.0.1744793418 170 4/16/2025
1.0.0.1744792665 175 4/16/2025
1.0.0.1744789472 182 4/16/2025
1.0.0.1744789247 176 4/16/2025
1.0.0.1744782208 183 4/16/2025
1.0.0.1744730268 199 4/15/2025
1.0.0.1744729656 189 4/15/2025
1.0.0.1744727041 176 4/15/2025
1.0.0.1744725348 182 4/15/2025
1.0.0.1744721122 182 4/15/2025
1.0.0.1744720849 170 4/15/2025
1.0.0.1744028133 166 4/7/2025
1.0.0.1744025876 154 4/7/2025
1.0.0.1744025736 149 4/7/2025
1.0.0.1744025200 152 4/7/2025
1.0.0.1744025022 159 4/7/2025
1.0.0 154 4/7/2025