Giter Club home page Giter Club logo

damienbod / aspnetcoreangularsignalrsecurity Goto Github PK

View Code? Open in Web Editor NEW
220.0 18.0 64.0 13.07 MB

Security with ASP.NET Core, SignalR and Angular

Home Page: https://damienbod.com/2017/10/16/securing-an-angular-signalr-client-using-jwt-tokens-with-asp-net-core-and-identityserver4/

License: MIT License

C# 34.23% HTML 11.35% CSS 29.08% TypeScript 11.62% JavaScript 3.91% SCSS 0.30% Less 9.47% Batchfile 0.02% Shell 0.02%
signalr aspnet-core angular oidc oauth2 identityserver4 aspnetcore sts ngrx

aspnetcoreangularsignalrsecurity's Introduction

Security with ASP.NET Core, SignalR and Angular

.NET

Posts in this series:

Run migrations

Console

dotnet ef migrations add init_api -c DataEventRecordContext
dotnet ef migrations add init_hub_db -c NewsContext

Powershell

Add-Migration "init_api" -c DataEventRecordContext  
Add-Migration "init_hub_db" -c NewsContext  

Running manually

Update-Database -Context DataEventRecordContext
Update-Database -Context NewsContext

History

  • 2023-11-04 Updated nuget packages, improved startup
  • 2023-08-19 Updated nuget packages, fix STS login bug
  • 2023-04-29 Updated nuget packages
  • 2023-01-21 Updated nuget packages
  • 2023-01-07 Updated everything in STS project
  • 2023-01-03 Updated .NET 7 and Angular 15
  • 2022-01-28 Updated nuget packages
  • 2021-11-04 Updated to .NET 6
  • 2021-07-04 Updated to OIDC V12, updated nuget packages
  • 2021-05-14 Updated npm, nuget packages
  • 2021-03-14 Updated npm, nuget packages
  • 2021-03-05 Updated npm, nuget packages
  • 2021-02-28 Updated npm, nuget packages
  • 2021-01-24 Updated Direct messages to Angular CLI version, linted, prettier
  • 2021-01-23 Updated to .NET 5, Azure SDK access, ngrx re-write, updated Angular project
  • 2020-09-15 Updated to .NET 5, Angular 11.0.2
  • 2020-09-15 Updated to IdentityServer4 4.1.0, .NET Core 3.1.8
  • 2020-07-06 Updated to IdentityServer4 4.0.2, angular-auth-oidc-client 11.1.4, Angular 10.0.2
  • 2020-06-28 Updated to Angular 10.0.1
  • 2020-06-28 Updated IdentityServer4 V4 + breaking changes and nuget packages
  • 2020-05-02 Updated to OIDC lib version 11, updated nuget packages, npm packages
  • 2020-03-21 updated packages, fixed Admin UI STS
  • 2020-03-03 updated STS, support for FIDO2
  • 2020-02-10 updated Angular 9 and nuget packages
  • 2020-01-02 updated npm and nuget packages
  • 2019-12-15 updated STS middleware configuration
  • 2019-12-06 updated to ASP.NET Core 3.1
  • 2019-11-17 updated to Nuget packages, updated to Angular 8.2.14, npm packages
  • 2019-09-24 updated to .NET Core 3.0, Angular 8.2.7
  • 2019-09-20 updated to .NET Core 3.0 rc1
  • 2019-09-14 updated to .NET Core 3.0 preview 9, Angular 8.2.6
  • 2019-09-01 Updated nuget packages, Angular 8.2.4, oidc 10.0.4
  • 2019-08-18 Updated ASP.NET Core 3.0, Angular 8.2.2
  • 2019-07-30: Updating npm packages, angular 8.1.3, oidc 10.0.3, nuget packages
  • 2019-06-21: Updating npm packages, angular 8.0.2, oidc 10.0.1, nuget packages
  • 2019-06-10: Updating npm packages, angular-oidc
  • 2019-05-30: Updating npm packages, angular 8.0.0
  • 2019-05-21: Updating npm packages, angular 7.2.15, oidc 9.0.8
  • 2019-04-26: Switch to in-process hosting, updated npm packages
  • 2019-04-14: Updating npm packages, angular 7.2.13, nuget packages
  • 2019-03-29: Updating npm packages, angular 7.2.11, nuget packages
  • 2019-03-15: Updating npm packages, nuget packages
  • 2019-02-24: Updating npm packages, nuget packages
  • 2019-02-06: Updating ngrx
  • 2019-01-23: Updating npm packages
  • 2019-01-08: switch to OIDC Code Flow with PKCE, OIDC 9.0.0, angular 7.2.1
  • 2018-12-04: updated .NET Core 2.2, npm packages
  • 2018-11-02: updated npm packages
  • 2018-10-30: Added User Admin to STS, custom claims with policies
  • 2018-10-26: Updated Angular 7.0.1, OIDC 7.0.3
  • 2018-10-14: Updated Angular 6.1.10, OIDC 7.0.0, ASP.NET Core SignalR 1.0.4
  • 2018-10-07: Updated to Angular 6.1.9, OIDC 6.0.12, Nuget packages
  • 2018-09-09: Updated Angular 6.1.7, OIDC Angular lib
  • 2018-08-18: Updated .NET Core 2.1.2, Angular 6.1.3, OIDC Angular lib
  • 2018-08-04: Updated .NET Core 2.1.2, Angular 6.1.1
  • 2018-05-31: Updated .NET Core 2.1
  • 2018-05-08: Updated Angular 6.0.3 and npm packages
  • 2018-05-08: Updated .NET Core 2.1 rc1
  • 2018-05-04: Updated Angular 6.0.0, STS to bootstrap 4
  • 2018-04-22: Updated Angular 5.2.10, latest ASP.NET Core SignalR preview2
  • 2018-03-21: Updated Angular 5.2.9, angular-auth-oidc-client 4.1.0
  • 2018-03-15: Updated signalr Microsoft.AspNetCore.SignalR 1.0.0-preview1-final, Angular 5.2.8, @aspnet/signalr 1.0.0-preview1-update1

aspnetcoreangularsignalrsecurity's People

Contributors

damienbod avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aspnetcoreangularsignalrsecurity's Issues

Talking about Authentication in SignalR

Hi,

I m trying to understand how SignalR works with Authentication, so thanks for your work, it s helpful.
About this page:
https://github.com/damienbod/AspNetCoreAngularSignalRSecurity/blob/master/DirectMessagesAngular/angularApp/app/directmessages/directmessages.service.ts

I read that you can use this instead:

 this._hubConnection = builder.withUrl(
      environment.apiUrl + '/hubs/notification',
      { accessTokenFactory: () => `bearer ${myToken}` }
    ).build();

So the code in startup (https://github.com/damienbod/AspNetCoreAngularSignalRSecurity/blob/master/ApiServer/Startup.cs) will be updated to:
context.HttpContext.Request.Headers.TryGetValue("Authorization", out var accessToken)
instead of
context.Request.Query.TryGetValue("token", out StringValues token)

I read other thing too, about IUserIdProvider, in startup:

            services.AddSignalR();
            services.AddSingleton<IUserIdProvider, UserIdProvider>();

and UserIdProvider

    public class UserIdProvider : IUserIdProvider
    {
        private readonly IUserManager _userManager;

        public UserIdProvider(IUserManager userManager)
        {
            _userManager = userManager;
        }

        public string GetUserId(HubConnectionContext connection)
        {

            return string.Empty;
        }
    }

What I was expecting with the variable connection is to see information about the user. We have set [Authorize] to the Hub, means it uses the authentication process, so, in my mind, i m supposed to receive name and role:
image

Here is how the Token is generated:

var tokenDescriptor = new SecurityTokenDescriptor
            {
                Issuer = authSettings.Issuer,
                Audience = authSettings.Audience,
                NotBefore = DateTime.UtcNow,
                IssuedAt = DateTime.UtcNow,
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(Constants.ClaimTypes.Sid, user.Id.ToString()), //Currently there an issue with ClaimTypes.Sid which not generate 'sid' (https://github.com/dotnet/corefx/issues/28454)
                    new Claim(ClaimTypes.Name, user.Id.ToString()),
                    new Claim(ClaimTypes.Role, user.RoleName),
                }),
                Expires = token.ExpirationDate,
                SigningCredentials = GenerateSigningCredentials(authSettings.SecretKey)
            };

This post is not really an Issue, more a discussion, I hope you will be interested to talk about it :).

Error 403 when trying to Create a DataEventRecord

All signed in, signalR stuff works great, News etc, its awesome.

But when trying to post a DataEventRecord I get nothing. Looking in chrome console I see

image

I have tried when logged in as an admin as well. IS this a bug?

Refresh of Client browser losses users logged in state

When you are logged in to application, all is well
image

But when you hit refresh on browser, the client app loses its state, and makes it seem like you are logged out. However the Auth data is still present in Session Storage

image

One must hit Login again to get logged in state back

npm rebuild node-sass

I'm getting the following error with testing out your app, the error from google chrome console.
While it asking me to npm rebuild node-sass, but when i look in the package.json. I don't even see this command.

index.js:1789 Uncaught Error: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
Error: Missing binding C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\node-sass\vendor\win32-x64-72\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 12.x

Found bindings for the following environments:
  - Windows 64-bit with Node.js 10.x

This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
    at module.exports (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\v8-compile-cache\v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\v8-compile-cache\v8-compile-cache.js:161:20)
    at getDefaultSassImpl (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\sass-loader\dist\index.js:198:10)
    at Object.loader (C:\Users\sarin\source\repos\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\node_modules\sass-loader\dist\index.js:80:29)
    at Object../node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./angularApp/styles.scss (https://localhost:44311/dist/app.bundle.js:98497:7)
    at __webpack_require__ (https://localhost:44311/dist/app.bundle.js:20:30)
    at Object../angularApp/styles.scss (https://localhost:44311/dist/app.bundle.js:12199:15)
    at __webpack_require__ (https://localhost:44311/dist/app.bundle.js:20:30)
    at Module../angularApp/main.ts (https://localhost:44311/dist/app.bundle.js:240:14)
    at __webpack_require__ (https://localhost:44311/dist/app.bundle.js:20:30)
    at https://localhost:44311/dist/app.bundle.js:84:18
    at https://localhost:44311/dist/app.bundle.js:87:10

Maybe to better to understand the enviroment

PS C:\> npm -v
6.13.4
PS C:\> node -v
v12.4.0
PS C:\> ng version

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 8.1.1
Node: 12.4.0
OS: win32 x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.801.1
@angular-devkit/core         8.1.1
@angular-devkit/schematics   8.1.1
@schematics/angular          8.1.1
@schematics/update           0.801.1
rxjs                         6.4.0

Having ALOT of trouble with the webpack builder

Hi Damo,

This sample looks great, but having ALOT of trouble trying to get the angular app to build and run.

Task runner fires up, but just has errors, and nothing helpful. this is what happens when I hit start from the task runner in VS 2017 on the SignalR project

I find your Angular setups just dont work for me. Im getting around this these days by using Angular-CLI and copy pasting your stuff into that. Angular-CLI just works.

Anyway, here is the errors I am getting from the task runner. Am I not supposed to use the task runner in VS 2017? Am I supposed to run something from CMD window?

yarn run v1.3.2
$ concurrently "webpack-dev-server --env=dev --open --hot --inline --port 8080" "dotnet run"
[0] @@@@@@@@@ USING DEVELOPMENT @@@@@@@@@@@@@@@
[0] clean-webpack-plugin: C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\wwwroot\dist has been removed.
[0] clean-webpack-plugin: C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\wwwroot\assets has been removed.
[0] Project is running at http://localhost:8080/
[0] webpack output is served from /
[0] Content not from webpack is served from C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\wwwroot
[0] 404s will fallback to /index.html
[0] webpack: wait until bundle finished: /
[0]
[0] Could not find implementations for the following rules specified in the configuration:
[0] no-access-missing-member
[0] templates-use-public
[0] invoke-injectable
[0] Try upgrading TSLint and/or ensuring that you have all necessary custom rules installed.
[0] If TSLint was recently upgraded, you may have old rules configured which need to be cleaned up.
[0]
[0] Warning: The 'no-use-before-declare' rule requires type information.
[0]
[0] [at-loader] Using [email protected] from typescript and "tsconfig.json" from C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR/tsconfig.json.
[0]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 1 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 2 in 1000
[1] ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 3 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 4 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 5 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 6 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 7 in 1000
[1] ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\Securit
[1] yAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 8 in 1000ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 9 in 1000
[1] ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\Securit
[1] yAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): warning MSB3026: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Beginning retry 10 in 100
[1] 0ms. The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): error MSB3027: Could not copy "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". Exceeded retry count of 10. Failed. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1] C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(4052,5): error MSB3021: Unable to copy file "obj\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll" to "bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll". The process cannot access the file 'C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\bin\Debug\netcoreapp2.0\SecurityAspNetCoreSignalR.dll' because it is being used by another process. [C:\test\AspNetCoreAngularSignalRSecurity\SecurityAspNetCoreSignalR\SecurityAspNetCoreSignalR.csproj]
[1]
[1] The build failed. Please fix the build errors and run again.
[1]
[1] dotnet run exited with code 1

Is there special instructions for this? Ive tried all sorts of things

cheers

Changes to code in Angular App does not trigger recompile and update to app in browser

Hi There,

Sorry to be hammering you on this repo.

Is there some command that one must run so that webpack will watch for changes and update the app?

I have run the application from visual studio, did not use a task runner or anything. Just ran it using Control F5, and it runs fine, but when you make a change, shut down, re-run it is delivering up the previous code and not the stuff I have changed.

So.... something is wrong. When I go to the task runner in visual studio 2017 I see the Watch - Development task, I try to run it but get this error

image

Is there something I am missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.