ABP Framework version: v3.3.0
UI type: MVC
Tiered (MVC) or Identity Server Seperated (Angular): no
Exception message and stack trace:
Steps to reproduce the issue:
the folder which the solution is in is actually C:\Amazing\Projects\3-3-0\Amazing.BookStore
[01:42:45 ERR] Error occured while adding the module Volo.AuditLogging.Uiwith source-code to the solution "431ca24a-8d94-4fbf-b22b-810fb47d684b".. System.ArgumentNullException: Value cannot be null. (Parameter 'path') at System.IO.Path.GetFullPath(String path) at System.IO.DirectoryInfo..ctor(String path) at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.RemoveProjectByPostFix(ModuleWithMastersInfo module, String moduleSolutionFile, String targetFolder, String postFix) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 209 at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.RemoveUnnecessaryProjectsAsync(String solutionDirectory, ModuleWithMastersInfo module, String[] projectFiles) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 167 at Volo.Abp.Cli.ProjectModification.SolutionModuleAdder.AddAsync(String solutionFile, String moduleName, String startupProject, String version, Boolean skipDbMigrations, Boolean withSourceCode, Boolean addSourceCodeToSolutionFile, Boolean newTemplate, Boolean newProTemplate) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectModification\SolutionModuleAdder.cs:line 102 at Volo.Abp.Cli.Commands.AddModuleCommand.ExecuteAsync(CommandLineArgs commandLineArgs) in D:\github\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\Commands\AddModuleCommand.cs:line 59 at Volo.Abp.Suite.Controllers.AbpSuiteController.AddModuleAsync(AddModuleInput input)
API are not automatically generated
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace Acme.Software.SimpleTask.Tasks
{
public interface ITaskAppService : IApplicationService
{
Task<ListResultDto<TaskDto>> GetAllAsync(GetAllTasksInput input);
}
}
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
namespace Acme.Software.SimpleTask.Tasks
{
public class TaskAppService : SimpleTaskAppService, ITaskAppService
{
private readonly IRepository<Task, Guid> _taskRepository;
public TaskAppService(IRepository<Task, Guid> taskRepository)
{
_taskRepository = taskRepository;
}
public async Task<ListResultDto<TaskDto>> GetAllAsync(GetAllTasksInput input)
{
var tasks = await AsyncExecuter.ToListAsync(_taskRepository
.WhereIf(input.State.HasValue, t => t.State == input.State.Value)
.OrderByDescending(t => t.CreationTime)
);
return new ListResultDto<TaskDto>(ObjectMapper.Map<List<Task>, List<TaskDto>>(tasks));
}
}
}
Solution Structure is as follws
We want to call api from ABP from a seprate Angular app, can you let us know the approach. I am working with one of your clients DesertFire which Alper put me in contact with.
Trying to run the Host project after running DbMigrator sucessfully and i get the following error
BusinessException: Tenant not found!
Volo.Abp.MultiTenancy.TenantConfigurationProvider.GetAsync(bool saveResolveResult)
Stack Query Cookies Headers Routing
BusinessException: Tenant not found!
Volo.Abp.MultiTenancy.TenantConfigurationProvider.GetAsync(bool saveResolveResult)
Volo.Abp.Account.Public.Web.ExternalProviders.AccountExternalProviderOptionsManager<TOptions>.OverrideOptionsAsync(string name, TOptions options)
Volo.Abp.Account.Public.Web.ExternalProviders.AbpAccountAuthenticationRequestHandler<TOptions, THandler>.InitializeAsync(AuthenticationScheme scheme, HttpContext context)
Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider.GetHandlerAsync(HttpContext context, string authenticationScheme)
IdentityServer4.Hosting.FederatedSignOut.FederatedSignoutAuthenticationHandlerProvider.GetHandlerAsync(HttpContext context, string authenticationScheme)
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
Microsoft.AspNetCore.Builder.UseMiddlewareExtensions+<>c__DisplayClass6_1+<<UseMiddlewareInterface>b__1>d.MoveNext()
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
Show raw exception details```
I am working with a clints of your DesertFire and we are about to launch our SaaS product and would like to know how to restrict users which the Tenants can create forced from the Host.
Can we use the Feature funtionallity which then gets allocated to Editions but the Teant admin or users can't modify and is read only Field. if you can please provide me with an example that would be great.
ABP Framework version: v4.2.0
UI type: custom-angular with MVC frontend the curom-angular app imports the following for authentication
import { AuthService, RestService } from '@abp/ng.core';
import { OAuthService } from 'angular-oauth2-oidc';
import { IdentityUserService } from './proxy/volo/abp/identity';
The custom-angular app runs in Microsoft Office Addin and uses office.js and is setup using the following steps from https://www.initgrep.com/posts/javascript/angular/microsoft-office-addin-using-angular-cli
Unable to login in to the Microsoft Edge Legacy running in Microsoft Office Addin, if we try and login four or five times it will eventually login and get the AccessToken but doesn't work every time it is hit and miss.
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.
System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
at Internal.Cryptography.UniversalCryptoDecryptor.GetPaddingLength(ReadOnlySpan`1 block)
at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock(ReadOnlySpan`1 inputBuffer, Span`1 outputBuffer)
at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
at Internal.Cryptography.UniversalCryptoTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
at System.Security.Cryptography.CryptoStream.ReadAsyncCore(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken, Boolean useAsync)
at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at Volo.Abp.Security.Encryption.StringEncryptionService.Decrypt(String cipherText, String passPhrase, Byte[] salt)
at Volo.Abp.Settings.SettingEncryptionService.Decrypt(SettingDefinition settingDefinition, String encryptedValue)
at Volo.Abp.Settings.SettingProvider.GetOrNullAsync(String name)
at Volo.Abp.Emailing.EmailSenderConfiguration.GetNotEmptySettingValueAsync(String name)
at Volo.Abp.Emailing.Smtp.SmtpEmailSender.BuildClientAsync()
at Volo.Abp.Emailing.Smtp.SmtpEmailSender.SendEmailAsync(MailMessage mail)
at Volo.Abp.Emailing.EmailSenderBase.SendAsync(MailMessage mail, Boolean normalize)
at Volo.Abp.Emailing.EmailSenderBase.SendAsync(String to, String subject, String body, Boolean isBodyHtml)
at Volo.Abp.Account.Emailing.AccountEmailer.SendPasswordResetLinkAsync(IdentityUser user, String resetToken, String appName, String returnUrl, String returnUrlHash)
at Volo.Abp.Account.AccountAppService.SendPasswordResetCodeAsync(SendPasswordResetCodeDto 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.ForgotPasswordModel.OnPostAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject)
at Microsoft.AspNetCore.Mvc.RazorPages.Infras
I just setup a twilio account and put the config in my appsettings.json
two factor is enabled and works well with email but i dont see the phone provider. Is it not included with abp commercial ? Do we have write our own phone sms provider ? how should we do this ?
We dont want towrite custom code in Account module becuase abp updates will then break if new funtionaly commes out with the next versionof abp
I have managed to add an property to User called ConCurrentUserId of type GUID, I have also created my own cutom Signin manager.
Can you tell me:
Which method I should use and How I can add a claim How I can get the claim to check the user property ConCurrentUserID, so that I can block login?