Activities of "liangshiwei"

HI,

You can try my steps

https://abp.io/support/questions/8278/SSO-login-like-external-provider?CurrentPage=2#answer-3a1668fe-ab22-9f7d-60d1-bece74fb536a

okay, i will check it

We have an article

https://abp.io/community/articles/how-to-setup-azure-active-directory-and-integrate-abp-angular-application-lyk87w5l

We can give the sample project but Azure AD is belong to our customer and it is only allow inside Norway. And also it is enable multifactor authentication.

sure, my email is shiwei.liang@volosoft.com

You can replace the LocalStorageListenerService

import { Injectable, inject } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class MyLocalStorageListenerService{

  constructor() {
    // do nothing
  }
}

AppModule

  providers: [
    APP_ROUTE_PROVIDER,
    provideAbpCore(
      withOptions({
        environment,
        registerLocaleFn: registerLocale(),
      }),
    ),
    {
      provide : LocalStorageListenerService,
      useValue : MyLocalStorageListenerService
    },
    .......
  ]

Unfortunately not yet

  1. "Login" button is always disabled, even when I provide both user name and password.
  2. Logo above login form is not displayed at all. There is only application name displayed but it looks like it's not affected by css style.

you can try add _ViewImports.cshtml

@using System.Globalization
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling

I can't reproduce the problem

  • abp new Testapp -u angular
ObjectExtensionManager.Instance.Modules()
  .ConfigureSaas(saas =>
  {
      saas.ConfigureTenant(tenant =>
      {
          tenant.AddOrUpdateProperty<Guid>( //property type: string
              "OpenIddictApplicationId", //property name
              property =>
              {
                  property.UI.Lookup.Url = "/api/openiddict/applications";
                  property.UI.Lookup.DisplayPropertyName = "displayName";
                  property.UI.Lookup.ValuePropertyName = "id";
              }
          );
      });
  });

You can implement IDeletionAuditedObject interface

HI

Please carefully check the answer

You can try override the ApplyAbpConceptsForDeletedEntity method

YourDbContext

protected override void ApplyAbpConceptsForDeletedEntity(EntityEntry entry)
{
    if (!(entry.Entity is ISoftDelete))
    {
        return;
    }

    if (IsHardDeleted(entry))
    {
        return;
    }

    if (entry.CurrentValues.Properties.Any(x => x.Name == nameof(IHasExtraProperties.ExtraProperties)))
    {
        ExtraPropertyDictionary? originalExtraProperties = null;
        if (entry.Entity is IHasExtraProperties)
        {
            originalExtraProperties = entry.OriginalValues.GetValue<ExtraPropertyDictionary>(nameof(IHasExtraProperties.ExtraProperties));
        }

        entry.Reload();

        if (entry.Entity is IHasExtraProperties)
        {
            ObjectHelper.TrySetProperty(entry.Entity.As<IHasExtraProperties>(), x => x.ExtraProperties, () => originalExtraProperties);
        }
    }
    

    ObjectHelper.TrySetProperty(entry.Entity.As<ISoftDelete>(), x => x.IsDeleted, () => true);
    SetDeletionAuditProperties(entry);
}
Showing 591 to 600 of 6693 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.1.0-preview. Updated on November 07, 2025, 08:20