Activities of "berkansasmaz"

Hi Berkan, I think you got support from AI while answering my question :) no problem but I find the answer wrong. MySmsSender class is just like EfCoreProductRepository and should not be in domain or application layer. What I asked was can we host it in .HttpApi project, until now we have always progressed by making a separate project. For example BookStore.Integration. I was just wondering if there could be other alternatives before starting my new project. I will continue to host such classes in a new project (module). Thanks anyway.

Yes, I used AI, but if you give AI your question, you will see that you will get very different answers. I explained to AI my thoughts on the subject and asked him to help me create a text that was more descriptive and clean than my views. In short, the thoughts in my answer are my own thoughts but it was the AI that made the wording more descriptive.

As a result, it is obvious that this decision should be made according to your domain, if you think that designing it as a separate integration package will be better for your project in the future, you can proceed in that way.

Hello,

We have updated the microservice template, and you can download the latest microservice solution using the newest version of ABP Studio.

In this updated solution, as you mentioned, AuditLogging has been positioned as a separate service. You will find concrete code examples demonstrating how this has been implemented, which you can use as a reference to apply the same approach to your own solution.

If you encounter any issues or have any questions, feel free to reach out. We’re happy to assist you!

Can you execute abp logout and abp login again in the terminal?

If the problem persists, it would be great if you could send the log of your application and the output of the abp login-info command.

Where Should You Implement ISmsSender?

When deciding where to place your ISmsSender implementation, it’s essential to consider the role of your application layer and domain layer. In Domain-Driven Design (DDD), we typically categorize domain logic into two types:

  1. Core Domain: Business rules that are fundamental and shared across all applications.
  2. Application Domain: Application-specific logic that varies based on the type of client (e.g., web, mobile, third-party API).

How This Applies to Your Scenario?

Let’s say you have a Web Application, and in the future, you plan to build:

  • A Mobile Application with a simplified user experience that doesn’t require all the same functionalities as the web.
  • A Third-Party API where authorization might be handled differently.

In such cases:

  • Each of these would have its own Application layer, because their use cases and workflows differ.
  • However, if a feature (e.g., sending SMS) is universal across all applications, it should belong to the Core Domain (Domain Layer).
  • If the implementation is specific to the Web application (e.g., sending SMS only for web users), then it belongs in the Application layer of that specific project.

Where Should You Implement ISmsSender?

  • If SMS sending is a fundamental part of your business logic and will be used across multiple applications, place it in the Domain Layer.
  • If SMS sending is specific to your current Web Application, and it may have different implementations for mobile or third-party APIs in the future, place it in the Application Layer of your Web project.

This approach helps reduce code duplication and keeps your architecture scalable and maintainable.

Hello, our relevant team member will respond to you as soon as possible.

Hello,

The issue occurs because the authentication process relies on cookies, and browsers enforce stricter rules for cross-origin cookies, especially when using HTTP.

To resolve this issue, you have two options:

1-) Use HTTPS (Recommended)

This is the best and most secure solution. Switching your application to HTTPS will ensure that authentication cookies are properly sent between your authentication server and WebAssembly client.

2-) Modify Cookie Settings (Less Secure Alternative)

If you must use HTTP, you need to adjust the cookie settings to allow cross-origin authentication. You can find detailed guidance here: https://learn.microsoft.com/en-us/aspnet/core/security/samesite?view=aspnetcore-9.0

Hello, our relevant team member will respond to you as soon as possible.

I would like to examine it in more detail. If it is appropriate, you can send your sample application to support@abp.io with a text like below:

Please forward my mail to Berkan Sasmaz regarding ticket #8704.

Hello 👋,

The error occurs because .NET 7 Runtime is missing from the build agent. Since you are using version 7.. of ABP CLI, it requires .NET 7 Runtime but only .NET 6, 8, and 9 are installed.

To resolve this, install .NET 7 Runtime from the following link: https://dotnet.microsoft.com/en-us/download/dotnet/7.0

Once installed, retry the pipeline. Let us know if you need further assistance.

Answer

Hello, some endpoints of ABP are ignored using ApiExplorerSettings attribute for security reasons. For example TokenController : https://github.com/abpframework/abp/blob/8d1d89ac7fe3082e342add226e97f417e7f9d287/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.cs#L12

If you want to see them in the swagger, you can follow these steps:

1-) Create class ForceApiExplorerVisibilityConvention in the AuthServer like the below:

public class ForceApiExplorerVisibilityConvention : IApplicationModelConvention
{
    public void Apply(ApplicationModel application)
    {
        foreach (var controller in application.Controllers)
        {
            // Controller seviyesinde Ignore edilmişse
            if (controller.ApiExplorer != null && controller.ApiExplorer.IsVisible == false)
            {
                controller.ApiExplorer.IsVisible = true;
            }

            // Aksiyon seviyesinde Ignore edilmişse
            foreach (var action in controller.Actions)
            {
                if (action.ApiExplorer != null && action.ApiExplorer.IsVisible == false)
                {
                    action.ApiExplorer.IsVisible = true;
                }
            }
        }
    }
}

2-) Add the following code blocks to the ConfigureServices method of module class in AuthServer project:

        context.Services.AddControllers(options =>
        {
            options.Conventions.Add(new ForceApiExplorerVisibilityConvention());
        });

If swagger is added in your AuthServer project, you can see the related endpoints as in the picture below:

Showing 351 to 360 of 742 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.2.0-preview. Updated on February 17, 2026, 09:10
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.