Activities of "ihugo"

Question
  • ABP Framework version: v4.0.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Seperated (Angular): yes

I have been looking through the Dahsboard sample solution and would like to change out the ChartJs version for AmCharts as we have the required chart license. I have created a widgets according to the docs and I have included reference to the AMCharts CDN in the cshtml file.

Tracing through the code, I can see the div is being found in the JS. I can debug through the code and see the data is being returned correctly (console.log), but the chart is just not rendering in the UI. I created the chart offline in an HTML file and it works, I also added the chart code into a seperate razor page and it works there too, it is just not working when embedded in the widget.

Any help would be appreciated. I have a feeling it is related to the fact that the amcharts JS files are not local?

  • ABP Framework version: v4.0.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Seperated (Angular): yes

I have a tiered solution which createds 3 separate docker images

  1. Identity Server
  2. API
  3. Web Site

I have them running on 3 seperate VMs hosted behind an NGINX reverse proxy (4 VMs in total). My domain name points to the nginx server, which routes them 4 subdomains to their various components.

  1. identity.domain.com.au
  2. api.domain.com.au
  3. web.domain.com.au

The reverse proxy forces SSL infront of the proxy, but communicates over port 80 to the various site components. Both the Identity Server and API work perfectly and are able to login correctly and return data, but the website fails when I click the login button.

Initially it had compolained about an obscure microsoft issue relating to enforcing the scheme to be https for each request. I added the code as suggested by microsoft but it is still failing somewhere in the pipeline. Any ideas?

This is a snippet of the identity server logs (formatted)

First log entry When clicking the login button 2021-01-12 00:36:10.160 +00:00 [INF] Request starting HTTP/1.0 GET http://identityserver.mydomain.com.au/connect/authorize? client_id=ACME_Swagger &redirect_uri=https%3A%2F%2Fwebsite.mydomain.com.au%2Fsignin-oidc &response_type=code%20id_token &scope=openid%20profile%20role%20email%20phone%20ACME &response_mode=form_post &nonce=637460085700247970.NTdiZWFkNWYtMTY0MS00MjY2LWE1NjMtMGYyMmZiMWQwZDUxMjBmNmY2ODctZDEyZS00NDAwLTgzMTUtZjI1M2I4NjRkZGM1 &state=CfDJ8M1sREtLfp9HtU4hP4gPDTVW3bvsBw6HcSYKun2hru60z84PnY2jB9vcXp1WVS3_EyZ5AHhMmhrJGfe2jddyZiXdqhz6tDpEeIfbCOrP11N5K4waG_tB-mMulgdbjD0QefAy2RWJ8lJ1JbN8lH2Jj6HHa1eEhZPa7I8Yk254gCXPjTDZNcTUagetAY2YKlA2JE_CBOW9YGs9CALfTWRKAVVGLCFUdLRKIvBNfgZYnbF0IGyKDYgNEXwFAjRqJCNmiliche-k9EsbFSRij1LusJKpLCR1Wv2wTzoYt-mlDUOgFWIdHen0se_ymmr8iePo2hpCtrJ18Ng3SxkpJP_7ChM &x-client-SKU=ID_NETSTANDARD2_0 &x-client-ver=6.7.1.0 - -

second log entry 2021-01-12 00:36:10.177 +00:00 [INF] Invoking IdentityServer endpoint: IdentityServer4.Endpoints.AuthorizeEndpoint for /connect/authorize

third log entry 2021-01-12 00:36:10.281 +00:00 [ERR] Invalid redirect_uri: https://website.mydomain.com.au/signin-oidc { "ClientId":"ACME_Swagger", "ClientName":"ACME_Swagger", "RedirectUri":null, "AllowedRedirectUris":["https://api.mydomain.com.au/swagger/oauth2-redirect.html","https://localhost:44358/swagger/oauth2-redirect.html"], "SubjectId":"anonymous", "ResponseType":null, "ResponseMode":null, "GrantType":null, "RequestedScopes":"", "State":null, "UiLocales":null, "Nonce":null, "AuthenticationContextReferenceClasses":null, "DisplayMode":null, "PromptMode":"", "MaxAge":null, "LoginHint":null, "SessionId":null, "Raw": { "client_id":"ACME_Swagger", "redirect_uri":"https://website.mydomain.com.au/signin-oidc", "response_type":"code id_token", "scope":"openid profile role email phone ACME", "response_mode":"form_post", "nonce":"637460085700247970.NTdiZWFkNWYtMTY0MS00MjY2LWE1NjMtMGYyMmZiMWQwZDUxMjBmNmY2ODctZDEyZS00NDAwLTgzMTUtZjI1M2I4NjRkZGM1", "state":"CfDJ8M1sREtLfp9HtU4hP4gPDTVW3bvsBw6HcSYKun2hru60z84PnY2jB9vcXp1WVS3_EyZ5AHhMmhrJGfe2jddyZiXdqhz6tDpEeIfbCOrP11N5K4waG_tB-mMulgdbjD0QefAy2RWJ8lJ1JbN8lH2Jj6HHa1eEhZPa7I8Yk254gCXPjTDZNcTUagetAY2YKlA2JE_CBOW9YGs9CALfTWRKAVVGLCFUdLRKIvBNfgZYnbF0IGyKDYgNEXwFAjRqJCNmiliche-k9EsbFSRij1LusJKpLCR1Wv2wTzoYt-mlDUOgFWIdHen0se_ymmr8iePo2hpCtrJ18Ng3SxkpJP_7ChM", "x-client-SKU":"ID_NETSTANDARD2_0", "x-client-ver":"6.7.1.0" }, "$type":"AuthorizeRequestValidationLog" }

fourth log entry 2021-01-12 00:36:10.281 +00:00 [ERR] Request validation failed

ABP Framework version: v4.0.2 UI type: MVC DB provider: EF Core Tiered (MVC) or Identity Server Seperated (Angular): yes

I have a multi tenanted tiered solution (MVC) with a requirement to customise the workflow for both my Web Solution and the react mobile application. My solution has multiple roles per tenant and I need to disable logon for certain roles from both web and mobile.

e.g:

Doctor Role: Only Web Access Patient Role: Only Mobile Access

I also have a requirement to completely restyle the Identoty Server logon. My question is, would i prevent the different role logon inside the identity server or allow the logon and redirect and display an unauthorised page inside the web portal? Would it be better to prevent the logon inside the identity server?

Is there a simple config setting in identoty server to say prevent logon for certain roles?

ABP Framework version: v4.0.2 **UI type: **MVC **DB provider: **EF Core Tiered (MVC) or Identity Server Seperated (Angular): yes

I have a dashboard in my solution which has a number of sections which all load asynchronously. Some of the processes load slower than others. My UI has a bunch of buttons across the top which control the bottom half of the screen. I would like to disable all actions on the screen until all the various asynchronous processes complete. At the moment, when clicking around quickly and not waiting until all sections have completed their load, we receive a javascript error.

It is indeed.

I have each of the layers running in their own docker container (linux). The exception stack trace is below. Is there a way I can do an abp.ui.setBusy and then clearBusy when the final async call returns?

{
  "Depth": 0,
  "ClassName": "System.Threading.Tasks.TaskCanceledException",
  "Message": "A task was canceled.",
  "Source": "System.Private.CoreLib",
  "StackTraceString": "   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)\n   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(DbContext _, Boolean result, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.Query.Internal.SplitQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()\n   at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)\n   at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleOrDefaultAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)\n   at Volo.Abp.Domain.Repositories.EntityFrameworkCore.EfCoreRepository`3.FindAsync(TKey id, Boolean includeDetails, CancellationToken cancellationToken)\n   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo)\n   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync()\n   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)\n   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)\n   at Volo.Saas.Tenants.TenantStore.FindAsync(Guid id)\n   at Volo.Abp.MultiTenancy.TenantConfigurationProvider.FindTenantAsync(String tenantIdOrName)\n   at Volo.Abp.MultiTenancy.TenantConfigurationProvider.GetAsync(Boolean saveResolveResult)\n   at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)\n   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()\n--- End of stack trace from previous location ---\n   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)\n   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)\n   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)\n   at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)\n   at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)\n   at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)\n   at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()\n--- End of stack trace from previous location ---\n   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)",
  "RemoteStackTraceString": null,
  "RemoteStackIndex": 0,
  "HResult": -2146233029,
  "HelpURL": null
}

Ok, understood...but is it possible to have the UI blocked until all async ajax requests complete?

I have been working on a solution which is using ABP Framework Version 4.2.0 for a few months now.

ABP Suite works great to generate entities and to update existing entities. I updated an entity this morning with no issue.

I saw that there was an update to the CLI and the Suite and I updated both after I updated my entity this morning.

While working on another ticket, I needed to update another entity but am now receiving this error:

I attempted to uninstall both the suite and the CLI and reinstall, but this did not help.

Any suggestions on getting around this issue?

We are developing a brand new tiered web solution (MVC Razor Pages) for one of our clients. The client requirement is to use either OKTA or Salesforce Identity for authentication. Is it possible to remove the IdentityServer component from the tiered solution and replace it with OKTA / SalesForce identity by changing the auth server URLS in the Web and API layer?

Do you have any samples of this? Do you mean delete the IdentityServer code in the tiered solution and adjust the URLs in the API host and Web solution?

Showing 1 to 10 of 15 entries
Made with ❤️ on ABP v8.2.0-preview Updated on March 25, 2024, 15:11