Activities of "cbogner85"

  • ABP Framework version: v6.0.0
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no

Hello,

as my users always complained about tenant-specific URLs, I decided to develop a unified login. Therefore, I extended all required methods such as LoginModel, ForgotPasswordModel, ResetPasswordModel and so on to work without multi-tenancy.

For the LoginModel, I disable multi-tenancy filter, get the tenant ID by the inserted user name (which is unique for all tenants), change CurrentTenant to the user's tenant and then perform PasswordSignIn.

Everything works almost as expected, but I got a strange issue: in some very rare cases, when users try to login from the unified login page, they receive an error 500, because a duplicate CmsUser insertion is tried. I can see from the sql server logs that it tries to find the cms user with tenant null:

exec sp_executesql N'SELECT TOP(1) [c].[Id], [c].[ConcurrencyStamp], [c].[Email], [c].[EmailConfirmed], [c].[ExtraProperties], [c].[IsActive], [c].[Name], [c].[PhoneNumber], [c].[PhoneNumberConfirmed], [c].[Surname], [c].[TenantId], [c].[UserName]
FROM [CmsUsers] AS [c]
WHERE ((@__ef_filter__p_0 = CAST(1 AS bit)) OR ([c].[TenantId] = @__ef_filter__CurrentTenantId_1)) AND ([c].[Id] = @__id_0)
ORDER BY [c].[Id]',N'@__ef_filter__p_0 bit,@__ef_filter__CurrentTenantId_1 uniqueidentifier,@__id_0 uniqueidentifier',@__ef_filter__p_0=0,@__ef_filter__CurrentTenantId_1=null,@__id_0='[userid]'

Important part: it searches for __CurrentTenantId_1=null although I changed the tenant.

Of course this doesn't return a user (as the user is tenant user and not host user) and therefore it tries to insert a new CmsUser, (interestingly with the correct switched tenantid!). This if course produces an error because of the insertion of a duplicate Id.

I don't understand why this happens only in rare cases and not always. But I want to figure out and therefore, I need to know where this CmsUser Inserting during login process takes place. I couldn't find it from the sources. Maybe you could point me to the right direction to help me fix it.

Thanks in advance!

  • ABP Framework version: v6.0.0-rc.4
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no

Hello,

I extended IdentityUser with some properties. Since 6.0.0-rc.3, users can edit these properties themselves by navigating to My Account > Personal Information. While this might be helpful in some situations, in my setup it is critical that the user may NOT edit the properties (e.g. I use them to set special discount conditions).

Is this a bug or was this intentionally added? If the latter, it would have been great if this had been announced before, as this might be a critical change for some users like me. I only discovered it by accident.

We can hide properties by setting: options.UI.OnTable.IsVisible = false; options.UI.OnEditForm.IsVisible = false; options.UI.OnCreateForm.IsVisible = false;

However this hides the properties in administrative User Management UI as well. I want the properties to be set only by administrative users. What can I do? It would be the best if we could set for every property whether the user can edit it himself.

Thanks and best Claus

Hello,

in one of my applications, all users have to be registered and logged in to use the app. Now I'd like to implement some CMS features, such as Blogs, Ratings,... how can I accomplish it, since CMS kit seems to be related only to public website? I added a "dummy" public website, because without the public web, abp cli it didn't create the necessary database migrations. Now I have the required tables, however I can't add e.g. the rating component since the ViewComponents namespace is Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Rating and thereforce I can't access it from the "non-public" website.

What can I do to use CMS kit in non-public website?

Thanks and best Claus

  • ABP Framework version: v4.3.3
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no

Hello,

when I consume an AppService via REST, JsonProperty names are not applied. It always returns C# name in camelCase. I found the following issues, stating that it should have been fixed in 4.3: GitHub abp Support

However, the phenomenon still exists in 4.3.3:

Also tried to create a new test project with abp suite in 4.3.3, same result:

What am I missing?

Thanks an best regards Claus

Hello,

I'm currently developing a webshop. Therefore I thought of having the product list and order process in public website, while admin tasks should be in the backend interface.

My problem is that I can't get access to the entities from web public. I noticed that I can inject e.g. the IProductAppService in Controllers, however, I can't access JavaScript API Controllers. Something like

var productService = window.myWebShop.products.products;
...

doesn't work (of course in backend app it works).

Additionally, I use DevExtreme for ASP.net Core and here I also can't access API Controllers (since the backend has a different port, it creates a wrong Controller URL). So, this:

Html.DevExtreme().DataGrid<Product>()
            .DataSource(d => d.Mvc()
                .Controller("Product") // Application Service Name without 'AppService'
                .LoadAction("GetList") // Method Name without 'Async'
                .Key("id")
            )

doesn't work, too.

I also tried to set RemoteServices of public website's appsettings.json to the location of the backend, but it didn't work either:

  "RemoteServices": {
    "Default": {
      "BaseUrl": "https://localhost:44309"
    }
  },

Could you please point me into the right direction? I think I might have to register AbpServiceProxies somewhere?

Thanks and best regards Claus

  • ABP Framework version: v4.3.0
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no

Hello,

is it possible to add "public website" and "cms kit" modules to an existing application that was initially created without the public website? Or do I have to create a completely new project? The latter would require lots of work merging the two projects, therefore I was hoping to find a possibility to add those modules.

Thanks and best regards Claus

  • ABP Framework version: v4.3.0 preview
  • UI type: Angular
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes / no
  • Exception message and stack trace:
  • Steps to reproduce the issue:

Hello,

I'm excitedly waiting for 4.3.0. Since preview release date was moved a couple of times, I wanted to try out the nightly builds. When I run:

abp switch-to-nightly

ABP nightly myget feed is added to the nuget.config:

[17:22:40 INF] ABP CLI (https://abp.io) [17:22:40 INF] Version 4.2.2 (Stable) [17:22:41 INF] Adding "https://www.myget.org/F/abp-nightly/api/v3/index.json" (ABP Nightly) to nuget sources...

However, VS can't resolve the Pro packages- neither from ABP Commercial Nuget feed nor from ABP Nightly feed:

What can I do to resolve the packages?

Thank you very much and best regards Claus

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.

  • ABP Framework version: v4.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no
  • Exception message and stack trace:
Volo.Abp.Identity.AbpIdentityResultException: Invalid token.
   at Microsoft.AspNetCore.Identity.AbpIdentityResultExtensions.CheckErrors(IdentityResult identityResult)
   at Volo.Abp.Account.AccountAppService.ConfirmEmailAsync(ConfirmEmailInput input)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
   at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
   at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
   at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed)
   at Volo.Abp.Account.Public.Web.Pages.Account.EmailConfirmationModel.OnGetAsync()
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.NonGenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope`

Hello,

some of my customers can't confirm their E-Mail addresses. They get errors when clicking the links. One of the users forwarded me the confirmation E-Mail; it seemed to be ok.

After inspecting the audit logs, I found out that user and tenant ids are correct. However, the tokens seem to contain unicode characters. For example:

`"token": "CfDJ8DKAitCAIvVDuLO5ZU057RuhcCbm1aNCntlJiDXp\u002BPueFsoWE920CmZX9vL2kF\u002BbzMET\u002BNJYJzUJHUVDpFOblBu4T1PaGUui\u002BEhNHZAJqMjdsz15CXpkSglNFts9Mz525IKkkjZ\u002BaZeghXIeI8jgnPdPtaODHGrGBSysPMry/TQMzX5EKLDLEvgPivqiMSEGuRHP5tG9WcVBqiozHqfHxt9V\u002BDZOdnK2uRt2nfz9KRygvAdwOhwzO7UdwjLwLR5uOg=="`

I'm not sure whether these \u002... characters belong to the token? Unfortunately, I couldn't find where the tokens are stored in the database (AbpUserTokens table is empty?) so I didn't have a chance to compare then.

Any idea?

Thanks in advance and best regards Claus

  • ABP Framework version: v4.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): no

Hello,

the documentation perfectly explains, how to add an item to the toolbar.

However, in tablet/ mobile layout, the user has to tap on the user icon first to expand the toolbar. I'd like to add an item to the navbar, that is always visible - even in mobile layout - since it contains important information. Is that possible?

I added screenshots to demonstrate the behaviour:

Desktop view: Toolbar is shown:

Mobile/ Tablet view: Toolbar is nested in user popup menu:

Thanks in advance and best regards Claus

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

Hello,

I created a custom login and register page following the tutorial in documentation (extending Modules). I used source from Account Module on GitHub and it worked great.

However, I'd like to increase the width of the content on desktops as my registration form has some additional fields. The content has a fixed width of 400px defined by an inline style tag:

I'd like to change this but cannot find the source of this block of code. Login/Register page starts with card-body and Account module's Layout Page is almost empty.

Could you please point me in the right direction?

Thanks and best regards Claus

Showing 1 to 10 of 11 entries
Made with ❤️ on ABP v9.2.0-preview. Updated on January 14, 2025, 14:54