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.
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:
Let’s say you have a Web Application, and in the future, you plan to build:
In such cases:
ISmsSender?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.
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: