user13714356
user13714356

Reputation: 171

Blazor Web App (.Net 8) with Windows Authentication

I have created a new Blazor Server Web App in .Net (the one that has both server and client projects). I would like to use Windows Authentication on this app but I'm not sure how I configure it. In the past I have had Blazor Server apps and run them in IIS under a service account, which worked well. Visual Studio also used my IIS server rather than IIS Express.

But I'm not sure how I configure this on a Blazor Web App or even if its possible?

Previously I would:

Program.cs, add the below:

builder.Services.AddAuthentication(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
builder.Services.AddAuthorization();

app.UseAuthentication();
app.UseAuthorization()

Create an application in IIS that pointed to my Blazor Server app.

My Visual Studio launchSettings.json is below

{
  "$schema": http://json.schemastore.org/launchsettings.json,
    "iisSettings": {
      "windowsAuthentication": true,
      "anonymousAuthentication": false,
      "iisExpress": {
        "applicationUrl": http://localhost:46190,
        "sslPort": 0
      }
    },
    "profiles": {
      "http": {
        "commandName": "Project",
        "dotnetRunMessages": true,
        "launchBrowser": true,
        "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
        "applicationUrl": http://localhost/OppsSupport,
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development"
        }
      },
      "IIS Express": {
        "commandName": "IISExpress",
        "launchBrowser": true,
        "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}",
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development"
        }
      }
    }
  }

But none of this seems to work, I noticed when you create a new Blazer Web App, "Windows" does not appear in the drop down list for authentication.

I get an error of

System.InvalidOperationException: 'A path base can only be configured using IApplicationBuilder.UsePathBase().'

I tried adding the below, but no joy:

app.UsePathBase("/OppsSupport");

Any help would be much appreciated.

TIA

UPDATE 1
I managed to get Windows Authentication working via IIS by using the below in my launchsetting.json file:

{
  "profiles": {
    "IIS": {
      "commandName": "IIS",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "http://localhost/OppsSupport" 
    }
  },
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": false,
    "iis": {
      "applicationUrl": "http://localhost/OppsSupport/" 
    }
  }
}

However when I now launch my app it loses all CSS and images and when I click a href I get a 404 as it does not remember the virtual directory I'm in.

It goes to http://localhost/counter
Rather than http://localhost/OppsSupport/Counter

Any idea why this happens?

Upvotes: 3

Views: 5753

Answers (1)

hybrid2102
hybrid2102

Reputation: 310

For the PathBase, try modifying the tag in App.razor

<base href="/YOURPATH" />

You can also check out these links for more information:

Upvotes: -1

Related Questions