Hi,
I get the following error when I run the abp add-package Volo.Abp.Emailing --with-source-code --add-to-solution-file comma
[09:54:36 INF] Successfully installed. [09:54:36 INF] Downloading source code of Volo.Abp.Emailing [09:54:36 INF] Version: 4.4.2 [09:54:36 INF] Output folder: C:\Projects\TestWEB\src\TestWebSaas\packages\Volo.Abp.Emailing [09:54:36 ERR] Package is not found or downloadable! System.Exception: Package is not found or downloadable! at Volo.Abp.Cli.ProjectBuilding.NugetPackageInfoProvider.GetAsync(String name) in D:\ci\Jenkins\workspace\abp-framework-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectBuilding\NugetPackageInfoProvider.cs:line 41 at Volo.Abp.Cli.ProjectBuilding.NugetPackageProjectBuilder.GetPackageInfoAsync(ProjectBuildArgs args) in D:\ci\Jenkins\workspace\abp-framework-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectBuilding\NugetPackageProjectBuilder.cs:line 107 at Volo.Abp.Cli.ProjectBuilding.NugetPackageProjectBuilder.BuildAsync(ProjectBuildArgs args) in D:\ci\Jenkins\workspace\abp-framework-release\abp\framework\src\Volo.Abp.Cli.Core\Volo\Abp\Cli\ProjectBuilding\NugetPackageProjectBuilder.cs:line 46
Is there a way to debug the Volo.Abp.Emailing source code project when it's called from my web MVC project? Please don't refer me to the other queries on how this can be accomplished as they do not work.
* 2021-09-07 06:59:39.828 -04:00 [INF] End processing HTTP request after 73.7044ms - 200
2021-09-07 06:59:39.847 -04:00 [INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.
2021-09-07 06:59:39.985 -04:00 [INF] Executed page /Account/Login in 1105.0193ms
2021-09-07 06:59:39.985 -04:00 [INF] Executed endpoint '/Account/Login'
2021-09-07 06:59:39.990 -04:00 [INF] Request finished HTTP/2 GET https://localhost:44386/Account/Login - - - 200 - text/html;+charset=utf-8 1143.7610ms
2021-09-07 06:59:40.017 -04:00 [INF] Request starting HTTP/2 GET https://localhost:44386/site.webmanifest - -
2021-09-07 06:59:40.023 -04:00 [INF] Request finished HTTP/2 GET https://localhost:44386/site.webmanifest - - - 404 - - 6.3240ms
2021-09-07 06:59:41.313 -04:00 [INF] Request starting HTTP/2 GET https://localhost:44386/Account/ForgotPassword - -
2021-09-07 06:59:41.325 -04:00 [INF] Executing endpoint '/Account/ForgotPassword'
2021-09-07 06:59:41.328 -04:00 [INF] Route matched with {page = "/Account/ForgotPassword", action = "", controller = "", area = ""}. Executing page /Account/ForgotPassword
2021-09-07 06:59:41.328 -04:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
2021-09-07 06:59:41.441 -04:00 [INF] Executing handler method StructureWeb.Web.Pages.Account.MyForgotPasswordModel.OnGetAsync - ModelState is "Valid"
2021-09-07 06:59:41.442 -04:00 [INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult.
2021-09-07 06:59:41.514 -04:00 [INF] Executed page /Account/ForgotPassword in 185.6143ms
2021-09-07 06:59:41.514 -04:00 [INF] Executed endpoint '/Account/ForgotPassword'
2021-09-07 06:59:41.514 -04:00 [INF] Request finished HTTP/2 GET https://localhost:44386/Account/ForgotPassword - - - 200 - text/html;+charset=utf-8 201.3382ms
2021-09-07 06:59:41.531 -04:00 [INF] Request starting HTTP/2 GET https://localhost:44386/site.webmanifest - -
2021-09-07 06:59:41.537 -04:00 [INF] Request finished HTTP/2 GET https://localhost:44386/site.webmanifest - - - 404 - - 5.4743ms
2021-09-07 06:59:44.127 -04:00 [INF] Request starting HTTP/2 POST https://localhost:44386/Account/ForgotPassword application/x-www-form-urlencoded 214
2021-09-07 06:59:44.142 -04:00 [INF] No CORS policy found for the specified request.
2021-09-07 06:59:44.143 -04:00 [INF] Executing endpoint '/Account/ForgotPassword'
2021-09-07 06:59:44.143 -04:00 [INF] Route matched with {page = "/Account/ForgotPassword", action = "", controller = "", area = ""}. Executing page /Account/ForgotPassword
2021-09-07 06:59:44.143 -04:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy
2021-09-07 06:59:44.203 -04:00 [INF] Executing handler method StructureWeb.Web.Pages.Account.MyForgotPasswordModel.OnPostAsync - ModelState is "Valid"
2021-09-07 06:59:44.224 -04:00 [WRN] Could not find IdentityClientConfiguration for AbpAccountPublic. Either define a configuration for AbpAccountPublic or set a default configuration.
2021-09-07 06:59:44.224 -04:00 [INF] Start processing HTTP request POST "https://localhost:44382/api/account/send-password-reset-code?api-version=1.0"
2021-09-07 06:59:44.224 -04:00 [INF] Sending HTTP request POST "https://localhost:44382/api/account/send-password-reset-code?api-version=1.0"
2021-09-07 06:59:58.124 -04:00 [INF] Received HTTP response headers after 13900.1645ms - 500
2021-09-07 06:59:58.124 -04:00 [INF] End processing HTTP request after 13900.3426ms - 500
2021-09-07 06:59:59.317 -04:00 [INF] Executed page /Account/ForgotPassword in 15173.8054ms
2021-09-07 06:59:59.423 -04:00 [INF] Executed endpoint '/Account/ForgotPassword'
2021-09-07 07:00:01.362 -04:00 [ERR] An unhandled exception has occurred while executing the request.
Volo.Abp.Http.Client.AbpRemoteCallException: An internal error occurred during your request!
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.ThrowExceptionForResponseAsync(HttpResponseMessage response)
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.MakeRequestAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.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 Volo.Abp.Account.Public.Web.Pages.Account.ForgotPasswordModel.OnPostAsync() in C:\Projects\modules\Volo.Account.Pro\src\Volo.Abp.Account.Pro.Public.Web\Pages\Account\ForgotPassword.cshtml.cs:line 35
at StructureWeb.Web.Pages.Account.MyForgotPasswordModel.OnPostAsync() in C:\Projects\src\StructureWebSaas\src\StructureWeb.Web\Pages\Account\ForgotPassword.cshtml.cs:line 45
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Convert[T](Object taskAsObject)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at IdentityServer4.Hosting.IdentityServerMiddleware.Invoke(HttpContext context, IEndpointRouter router, IUserSession session, IEventService events, IBackChannelLogoutService backChannelLogoutService)
at IdentityServer4.Hosting.MutualTlsEndpointMiddleware.Invoke(HttpContext context, IAuthenticationSchemeProvider schemes)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at IdentityServer4.Hosting.BaseUrlMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next)
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass6_1.<<UseMiddlewareInterface>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
2021-09-07 07:00:01.416 -04:00 [INF] Request finished HTTP/2 POST https://localhost:44386/Account/ForgotPassword application/x-www-form-urlencoded 214 - 500 - text/html;+charset=utf-8 17288.8165ms
I get the above message when executing the following block of code in the Volo.Account.Pro\src\Volo.Abp.Account.Pro.Public.Application\Volo\Abp\Account\Emailing\AccountEmailer.cs class file
await EmailSender.SendAsync( user.Email, StringLocalizer["PasswordReset"], emailContent );
Below is my overridden OnPostAync method. The .IsAuthenticated is returning true when I supply the improper credentials now. Please tell me how this code block should look like for me to interrogate the result of the base.OnPostAsync method and to determine if authentication was successful or not so I can redirect the application to the appropriate page.
Thanks.
public override async Task<IActionResult> OnPostAsync(string action)
{
ReturnUrl = "../HostDashboard";
var result = await base.OnPostAsync(action);
var user = await GetIdentityUser(LoginInput.UserNameOrEmailAddress);
if (user != null)
{
using (CurrentPrincipalAccessor.Change(await SignInManager.CreateUserPrincipalAsync(user)))
{
if (CurrentUser.IsAuthenticated)
{
return RedirectToPage(ReturnUrl);
}
}
}
return Page();
}
This is my ConfigureAuthentication method
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
{
context.Services.AddAuthentication(options =>
{
})
.AddCookie("Cookies", options =>
{
options.ExpireTimeSpan = TimeSpan.FromDays(365);
})
.AddAbpOpenIdConnect("oidc", options =>
{
options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);;
options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.ClientId = configuration["AuthServer:ClientId"];
options.ClientSecret = configuration["AuthServer:ClientSecret"];
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("role");
options.Scope.Add("email");
options.Scope.Add("phone");
});
}
I've removed the following 2 lines from the AddAuthentication method but after I call the base.OnPostAsync(action) method from my class that overrides the LoginModel class but after the result is returned the CurrentUser.IsAuthenticated property is still set to false despite have a SuccessfulLogin row in the SecuirtyLogs table.
options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc";
Please advise.
I'm still experiencing this issue depsite those two lines not being in the AddAuthentication call. Even though I get a successlogin row in the security log table the IsAuthenticated property is still set to false.
There is a row in the SecurityLogs table who's action column value is 'LoginSucceeded' but the CurrentUser.IsAuthenticated value still is not set to 'true' after the base.OnPostAync(action) method is called.
I have overriden the default login page and call the base OnPostAsync() method but when the result is returned the user is still not authenticated. I looked in the log and I'm getting an error for the IdentityClientConfiguration for AbpAccountPublic. Either define a configuration for AbpAccountPublic or set a default configuration. How do I override this to see accoring to what my ideneityclient configurations are?
Disregard. It looks like I'm having an issue with identity server and the 'CurrentUser.IsAuthenticated' property is never being set to true.