Activities of "maliming"

Hi,

February 14, 2027 is in the future, so the end date isn't what's failing here. The license check also requires your account to be listed under Developers of the organization, being an Owner isn't enough.

Please check that on https://abp.io/my-organizations first, then sign in again:

abp login
abp login-info

Restart ABP Studio after that, it picks up the same session as the CLI.

If it still fails, could you share:

  1. The exact command or ABP Studio action that shows the error, and its full text.
  2. The output of abp --version and abp login-info.
  3. Your machine's current date and time zone, the check also uses the local clock.
  4. A screenshot of the license information and Developers sections on your organization page, with the API key part kept collapsed.

Thanks

Hi,

Yes, remove the ConfigureApplicationCookie workaround for /Account/LinkLogin after upgrading to 10.7.

The complete fix is covered by https://github.com/abpframework/abp/pull/26028 and https://github.com/abpframework/abp/pull/26017. Keeping the workaround would prevent the previous session from being revoked correctly.

Thanks

Hi,

We fixed this on the framework side. The request unit of work is now completed before the /connect response is flushed, so the identity session and the OpenIddict token/authorization rows are committed and visible to the immediate next request. It's turned on for /connect by default, so you don't need to configure anything.

It'll be included in an upcoming release. Once you upgrade, you can remove your custom OpenIddictCommitIdentitySessionHandler.

PR: https://github.com/abpframework/abp/pull/26017

Thanks

hi

We will fix it in https://github.com/abpframework/abp/pull/26028 (10.7)

You can follow it.

Thanks.

Hi,

We've refunded the credit for this ticket.

Thanks

Hi,

We've refunded your ticket.

Thanks

Hi,

This is a bug in the Angular grid, the header loses track of the horizontal scroll position when the list reloads. It isn't specific to Application name either, any sort, filter or page change hits it once the grid is scrolled sideways.

Here is a workaround you can use for now, add it to src/styles.scss:

abp-extensible-table .datatable-scroll,
abp-extensible-table .datatable-header-inner,
abp-extensible-table .datatable-row-center,
abp-extensible-table datatable-body-row {
  width: 100% !important;
}

abp-extensible-table datatable-header-cell,
abp-extensible-table datatable-body-cell {
  flex-shrink: 1 !important;
  min-width: 0 !important;
}

It makes the columns share the available width instead of scrolling sideways, so the header and the rows can't drift apart. Long values wrap onto more lines.

We'll fix this in the next release.

Thanks

Hi,

The Browser column keeps the raw User-Agent header, and every modern browser sends one that starts with Mozilla/5.0. Chrome, Edge and Firefox are named further along the same string, so the column width is what hides them, not the recorded value.

The IP address is a different case. One address on every entry, and a link-local one at that, is what you get when the application runs behind a reverse proxy: the generated host never takes the client address from X-Forwarded-For, so each entry is stamped with the proxy IP instead. Add this at the end of ConfigureServices in the module that serves the login page (*HttpApiHostModule, or *AuthServerModule if your solution has a separate auth server):

Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
    options.KnownNetworks.Clear();
    options.KnownProxies.Clear();
});

The two Clear() calls are the part that is easy to miss. The middleware trusts only loopback addresses out of the box, so without them X-Forwarded-For is dropped without any error and you keep seeing the proxy address. Clear them only when your application cannot be reached except through the proxy, otherwise a caller that bypasses it can spoof its IP. On .NET 10 the same list is named KnownIPNetworks.

For the truncated columns you can show the full User-Agent and application name on hover with an entity prop contributor:

// src/app/security-log-prop-contributors.ts
import { escapeHtmlChars } from '@abp/ng.core';
import { EntityProp, EntityPropList } from '@abp/ng.components/extensible';
import { IdentitySecurityLogDto } from '@volo/abp.commercial.ng.ui/config';
import { eIdentityComponents } from '@volo/abp.ng.identity';
import { of } from 'rxjs';

function showFullValueOnHover(
  propList: EntityPropList<IdentitySecurityLogDto>,
  name: 'browserInfo' | 'applicationName',
) {
  const index = propList.indexOf(name, (value, propName) => value.name === propName);
  const droppedNode = propList.dropByIndex(index)!;

  propList.addByIndex(
    new EntityProp<IdentitySecurityLogDto>({
      ...droppedNode.value,
      valueResolver: data => {
        const value = escapeHtmlChars(data.record[name]) || '';

        return of(`&lt;div class=&quot;abp-ellipsis-inline&quot; title=&quot;${value}&quot;&gt;${value}&lt;/div&gt;`);
      },
    }),
    index,
  );
}

// The exported contributor type does not list the security logs page yet.
export const identityEntityPropContributors = {
  [eIdentityComponents.SecurityLogs]: [
    (propList: EntityPropList<IdentitySecurityLogDto>) => {
      showFullValueOnHover(propList, 'browserInfo');
      showFullValueOnHover(propList, 'applicationName');
    },
  ],
} as any;

Then pass it to the identity route in app.routes.ts:

{
  path: 'identity',
  loadChildren: () =>
    import('@volo/abp.ng.identity').then(c =>
      c.createRoutes({ entityPropContributors: identityEntityPropContributors }),
    ),
},

The next release will show the full value on hover without this contributor, and the contributor type will accept the security logs page so the cast is no longer needed.

Thanks

Hi,

We'll investigate this and fix it on our side.

Please stick with your workaround until the fix is released.

We've refunded your ticket.

Thanks

Hi,

This is a bug in the Roles page of the Angular Identity module.

You can override the toolbar action until the fix ships. Add this file to your app:

// src/app/identity-toolbar-contributors.ts
import { ToolbarAction, ToolbarActionList } from '@abp/ng.components/extensible';
import { IdentityRoleDto } from '@volo/abp.ng.identity/proxy';
import {
  eIdentityComponents,
  IdentityToolbarActionContributors,
  RolesComponent,
} from '@volo/abp.ng.identity';

export const identityToolbarActionContributors: IdentityToolbarActionContributors = {
  [eIdentityComponents.Roles]: [
    (actionList: ToolbarActionList<IdentityRoleDto[]>) => {
      const newRoleNode = actionList.find(
        node => (node.value as ToolbarAction<IdentityRoleDto[]>).text === 'AbpIdentity::NewRole',
      );

      if (newRoleNode) {
        actionList.dropByValue(newRoleNode.value);
      }

      actionList.addHead(
        ToolbarAction.create<IdentityRoleDto[]>({
          text: 'AbpIdentity::NewRole',
          icon: 'fa fa-plus',
          permission: 'AbpIdentity.Roles.Create',
          action: data => {
            const component = data.getInjected(RolesComponent);
            component.selected = null as unknown as IdentityRoleDto;
            component.onAdd();
          },
        }),
      );
    },
  ],
};

Then pass it where you register the identity routes in app-routing.module.ts:

{
  path: 'identity',
  loadChildren: () =>
    import('@volo/abp.ng.identity').then(m =>
      m.IdentityModule.forLazy({
        toolbarActionContributors: identityToolbarActionContributors,
      }),
    ),
},

We'll fix this in the next release. Your ticket has been refunded.

Thanks

Showing 161 to 170 of 12912 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on November 02, 2026, 06:56
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.