From f598fbf5ce24965d2cec80867f5c715bbffb7bc1 Mon Sep 17 00:00:00 2001 From: Pierre Arnaud Date: Fri, 30 Jan 2026 19:13:12 +0100 Subject: [PATCH] Phase 1.1: Generate authentication token in RuntimeController - Add authenticationToken field to store GUID - Generate secure token using Guid.NewGuid().ToString('N') - Pass token to Electron via --authtoken command-line parameter - Token is 32 hex characters with 128 bits of entropy --- .../RuntimeControllerAspNetDotnetFirstSignalR.cs | 6 +++++- src/ElectronNET.Samples.BlazorSignalR/Program.cs | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetDotnetFirstSignalR.cs b/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetDotnetFirstSignalR.cs index 619b3af..a39329f 100644 --- a/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetDotnetFirstSignalR.cs +++ b/src/ElectronNET.AspNet/Runtime/Controllers/RuntimeControllerAspNetDotnetFirstSignalR.cs @@ -31,6 +31,7 @@ namespace ElectronNET.AspNet.Runtime private int? port; private string actualUrl; private bool electronLaunched; + private string authenticationToken; public RuntimeControllerAspNetDotnetFirstSignalR( AspNetLifetimeAdapter aspNetLifetimeAdapter, @@ -108,9 +109,12 @@ namespace ElectronNET.AspNet.Runtime private void LaunchElectron() { + // Generate secure authentication token + this.authenticationToken = Guid.NewGuid().ToString("N"); // 32 hex chars, no hyphens + var isUnPacked = ElectronNetRuntime.StartupMethod.IsUnpackaged(); var flag = isUnPacked ? "--unpackeddotnetsignalr" : "--dotnetpackedsignalr"; - var args = $"{flag} --electronurl={this.actualUrl}"; + var args = $"{flag} --electronurl={this.actualUrl} --authtoken={this.authenticationToken}"; this.electronProcess = new ElectronProcessActive(isUnPacked, ElectronNetRuntime.ElectronExecutable, args, this.port.Value); // Note: We do NOT subscribe to electronProcess.Ready in SignalR mode. diff --git a/src/ElectronNET.Samples.BlazorSignalR/Program.cs b/src/ElectronNET.Samples.BlazorSignalR/Program.cs index 7034b50..6b792e1 100644 --- a/src/ElectronNET.Samples.BlazorSignalR/Program.cs +++ b/src/ElectronNET.Samples.BlazorSignalR/Program.cs @@ -1,6 +1,5 @@ using ElectronNET.API; using ElectronNET.API.Entities; -using ElectronNET.Samples.BlazorSignalR.Components; var builder = WebApplication.CreateBuilder(args);