Base solution for your next web application

Activities of "kpmg"

Hi,

is there any plan on adding GSuite SAML2 authentication, or can i use an existing one?

Also we would like to configure the supported authentication processes per tenant and not for all tenants, is there any plan of integrating a feature like this.

Thanks and best regards

Hi there,

we are experiencing strange behavior of our application in an Azure Environment. At first the application is working as intended. Any request gets to the point where AbpUserConfiguration/GetAll is pending until a HTTP 500 error is returned.

The developer console shows the following (sensible information blurred):

We have already checked the logs, but there are no ERRORS/FATALS and all the INFO/DEBUG entries are looking good. I won't upload the logs here since they contain sensible information. If necessary I am willing to mail them.

Also we are unable to reproduce this error locally, it seems to be an Azure problem.

We are using Boilerplate version 4.5.0 and Zero version 6.9.1.

I hope you can help out with that problem and if you need more information please let me know.

Best regards

Hi guys,

i have a problem while i have deployed an instance of ASP.Net Zero to Azure with the following priciples: Framework version 6.9.1 .Net Core Angular SPA UI endpoint: https://foo.com/app Backend endpoint: https://foo.com/app-api

Already did the ng build --prod --base-href "/app/" worked fine (<base href="/app/"> is set).

When i now hit the application (nearly) everything will be loaded perfectly without a couple of static files (see screenshot). The ui-sub directory "/app/" is missing in the URL identitfier, but why is it missing in only a few resources? The resources are available and accessable. The app is not hosted in a virtual dir as i know, that .Net Core does not support virtual dirs.

Does anyone have a hint for me?

Kind regards Michael

Hi ASP.NET Zero team,

i am searching for a good approach - maybe something which is already implemented in some way - to control the access for users per entity. For example i have a custom entity "Company" and i want to assign users to allow working with that entity. Typical stuff like hiding in views, CRUD etc.

Is there something pre-build which i can re-use instead of reinventing the wheel?

Case is for example: 15 companies available. A user is authorized for a sub amount of them (i.e. 3). All the other entities should be hidden. The permissions/features are more - as i see them - to deactivate the entire area for companies, not a specific sub-amount of them.

Kind regards Michael

Hi everyone!

I use the new 6.5 template with angular and .net core 2.2. I have an error during the startup of the application that results in my opinion in a tenant ID error. On my local maschine I don't get the error. What can I do?

I am hosting it on Azure as a Web App. I think the problem is somewhere else. When I restart the Web App and just call the login screen, the following logs are getting created. First I thought it is my Application Insights but the error bellow still occurs even if I disabled Application Insights.

DEBUG 2019-02-05 10:22:06,135 [1 ] Abp.Modules.AbpModuleManager - Loading Abp modules... DEBUG 2019-02-05 10:22:06,394 [1 ] Abp.Modules.AbpModuleManager - Found 23 ABP modules in total. DEBUG 2019-02-05 10:22:06,523 [1 ] Abp.Modules.AbpModuleManager - 23 modules loaded. DELETED SOME LOGS FOR READABILITY DEBUG 2019-02-05 10:22:27,794 [1 ] cy.SubscriptionExpireEmailNotifierWorker - Start background worker: myappDemo.MultiTenancy.SubscriptionExpireEmailNotifierWorker FATAL 2019-02-05 10:22:31,570 [1 ] soft.AspNetCore.Hosting.Internal.WebHost - Hosting startup assembly exception System.InvalidOperationException: Startup assembly Microsoft.AspNetCore.AzureAppServices.HostingStartup failed to execute. See the inner exception for more details. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.AspNetCore.AzureAppServices.HostingStartup, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, IntPtr ptrLoadContextBinder) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, IntPtr ptrLoadContextBinder) at System.Reflection.Assembly.Load(AssemblyName assemblyRef) at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors) --- End of inner exception stack trace --- INFO 2019-02-05 10:22:32,477 [8 ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 OPTIONS http://myapp-dev7854.azurewebsites.net/AbpUserConfiguration/GetAll?d=1549362115780 INFO 2019-02-05 10:22:32,635 [8 ] pNetCore.Cors.Infrastructure.CorsService - CORS policy execution successful. INFO 2019-02-05 10:22:32,861 [8 ] soft.AspNetCore.Hosting.Internal.WebHost - Request finished in 366.8468ms 204 INFO 2019-02-05 10:22:33,049 [8 ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET http://myapp-dev7854.azurewebsites.net/AbpUserConfiguration/GetAll?d=1549362115780 application/json INFO 2019-02-05 10:22:33,052 [8 ] pNetCore.Cors.Infrastructure.CorsService - CORS policy execution successful.

DELETED SOME LOGS FOR READABILITY

INFO 2019-02-05 10:22:40,671 [11 ] soft.AspNetCore.Hosting.Internal.WebHost - Request starting HTTP/1.1 GET http://myapp-dev7854.azurewebsites.net/TenantCustomization/GetTenantLogo?skin=light&tenantId=3&id=7ac9b5b4-c56d-c92e-91a3-39eb92117412 INFO 2019-02-05 10:22:40,789 [11 ] ft.AspNetCore.Routing.EndpointMiddleware - Executing endpoint 'myappDemo.Web.Controllers.TenantCustomizationController.GetTenantLogo (myappDemo.Web.Core)' ERROR 2019-02-05 10:22:40,798 [12 ] Mvc.ExceptionHandling.AbpExceptionFilter - Session.TenantId is null! Possible problems: No user logged in or current logged in user in a host user (TenantId is always null for host users). Abp.AbpException: Session.TenantId is null! Possible problems: No user logged in or current logged in user in a host user (TenantId is always null for host users). at Abp.Runtime.Session.AbpSessionExtensions.GetTenantId(IAbpSession session) at myappDemo.Web.Controllers.TenantCustomizationController.GetCustomCss() in C:\DEV\Repos\myapp\aspnet-core\src\myappDemo.Web.Core\Controllers\TenantCustomizationController.cs:line 170 at lambda_method(Closure , Object ) at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult() at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync() INFO 2019-02-05 10:22:40,817 [12 ] ore.Mvc.Internal.ControllerActionInvoker - Executed action myappDemo.Web.Controllers.TenantCustomizationController.GetCustomCss (myappDemo.Web.Core) in 286.7727ms INFO 2019-02-05 10:22:40,818 [12 ] ft.AspNetCore.Routing.EndpointMiddleware - Executed endpoint 'myappDemo.Web.Controllers.TenantCustomizationController.GetCustomCss (myappDemo.Web.Core)' ERROR 2019-02-05 10:22:40,825 [12 ] Microsoft.AspNetCore.Server.Kestrel - Connection id "0HLKBAFB83ATQ", Request id "0HLKBAFB83ATQ:00000005": An unhandled exception was thrown by the application. Abp.AbpException: Session.TenantId is null! Possible problems: No user logged in or current logged in user in a host user (TenantId is always null for host users). at Abp.Runtime.Session.AbpSessionExtensions.GetTenantId(IAbpSession session) at myappDemo.Web.Controllers.TenantCustomizationController.GetCustomCss() in C:\DEV\Repos\myapp\aspnet-core\src\myappDemo.Web.Core\Controllers\TenantCustomizationController.cs:line 170 at lambda_method(Closure , Object ) at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult() at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextExceptionFilterAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context) at Abp.AspNetZeroCore.Web.Authentication.JwtBearer.JwtTokenMiddleware.<>c__DisplayClass0_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Abp.AspNetCore.Security.AbpSecurityHeadersMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication1 application)

Thanks in advance

Hi all!

I want to know how you would structure your application if you want to create a new module.

I have a blank .Net Core 2.2 and Angular project. Front- and Backend are seperated.

I checked the modular todo app project (https://github.com/aspnetboilerplate/modular-todo-app) but it is 2 years old and I want to do some extra stuff.

Let’s say I want to have a master data module with the entities company and stores. I want to use the RAD tool and then "move" the created files to a seperate solution structure and pack it as a module. And after that I want to have another module called "Calculations" that depends on that module.

How would you structure your solution and what are the best practices to create a module?

Thanks in advance!

Question

Hi all!

I tried to upload a custom CSS and it looks like the file got uploaded. But during the GET process there is an error

GET https://MYWEBSITE//TenantCustomization/GetCustomCss?id=1e649217-0451-92d8-3d6c-39eacd5d30c9 net::ERR_ABORTED 500 (Internal Server Error)

Does anyone know why this error is shown?

Thanks in advance!

<input type="datetime" datePicker [(selectedDate)]="notificationDate" id="notificationDate" name="notificationDate" required>

The control is not validated even though it contains "required". Inside the directive ngModel is not updated Do we have to use a workaround with selectedDateChange and a dummy ngModel Binding?

Good morning,

we use multi tenancy with a host database and separate databases for several tenants. We encountered an issue when loading from the tenant database.

Some more details:

When a file is saved as binary (it could be other data types as well) with selected tenant X it cannot be loaded again in production. If we select the host, save and reload the file it works but it doesn't work on a tenant database.

The upload method is located in the C# Project <ProjectName>.Web.Core in a controller that is derived from <ProjectName>ControllerBase that is derived from AbpController.

The download method is located in the same C# project in FileController also derived from <ProjectName>ControllerBase. The download method is

public async Task<FileResult> DownloadBinaryObject(Guid id, string displayName)
	    {
		    var binary = await _binaryObjectManager.GetOrNullAsync(id);
			var file = new FileContentResult(binary.Bytes, System.Net.Mime.MediaTypeNames.Application.Octet);
		    file.FileDownloadName = displayName;
		    return file;
	    }

The upload method:

        [HttpPost]
        [AbpMvcAuthorize]
        public async Task<JsonResult> UploadFile()
        {
            try
            {
                var file = Request.Form.Files.First();
                byte[] fileBytes;
                using (var stream = file.OpenReadStream())
                {
                    fileBytes = stream.GetAllBytes();
                }

                var fileObject = new BinaryObject(null, fileBytes);
                using (CurrentUnitOfWork.SetTenantId(AbpSession.TenantId))
                {
                    fileObject.TenantId = AbpSession.TenantId;
                    await BinaryObjectManager.SaveAsync(fileObject);
                }
                return Json(new AjaxResponse(new
                {
                    id = fileObject.Id,
                    name = file.FileName,
                    contentType = file.ContentType
                }));
            }
            catch (UserFriendlyException ex)
            {
                return Json(new AjaxResponse(new ErrorInfo(ex.Message)));
            }
        }

How can we resolve this issue?

Question

Hi everyone! I have the template version 6.2.0.0 and I just updated from a former version where there was the option to position the menu horizontally in the top region. Now I have to change the theme completly to achive this.

Is there another way to get to "standard theme" with a horizontal menu bar?

Thanks!

Showing 1 to 10 of 18 entries