The address record was working before adding forgot password, the issue was on the startup file with the provider, if it is removed the fig 1 code from the startup file, the address record will be displayed. Please I need help to resolve this issue.
What I have tried:
When this code is added, the forgotpassword is working, but the address record has been an issue on Fig 2.
Fig 1:
services.AddIdentity<AppUser, IdentityRole>()
.AddEntityFrameworkStores<AppIdentityDbContext>()
.AddDefaultTokenProviders();
Fig 2:
[
Authorize
]
[HttpGet(
"
address"
)]
public
async
Task<ActionResult<AddressDto>> GetUserAddress()
var
user =
await
_userManager.FindByEmailWithAddressAsync(HttpContext.User);
return
_mapper.Map<Address,AddressDto>(user.Address);
Here is the error for Fig 2:
"
details"
:
"
at System.IO.FileInfo.get_Length()\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.GetFileInfo(String path)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.PhysicalFileResultExecutor.ExecuteAsync(ActionContext context, PhysicalFileResult result)\r\n at Microsoft.AspNetCore.Mvc.PhysicalFileResult.ExecuteResultAsync(ActionContext context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultAsync(IActionResult result)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResultFilterAsync[TFilter,TFilterAsync]()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()\r\n--- End of stack trace from previous location ---\r\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)\r\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\r\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\r\n at Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(HttpContext context)\r\n at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)\r\n at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)\r\n at API.Middleware.ExceptionMiddleware.InvokeAsync(HttpContext context) in C:\\Users\\fiseh\\Ruth_2022\\skinet\\API\\Middleware\\ExceptionMiddleware.cs:line 30"
,
"
statusCode"
:
500
,
Fig 3:
[
HttpPost
(
"
ForgotPassword"
)]
public
async
Task<IActionResult> ForgotPassword([FromBody] ForgotPasswordDto forgotPasswordDto)
if
(!ModelState.IsValid)
return
BadRequest();
var
user =
await
_userManager.FindByEmailAsync(forgotPasswordDto.Email);
if
(user ==
null
)
return
BadRequest(
"
Invalid Request"
);
var
token =
await
_userManager.GeneratePasswordResetTokenAsync(user);
var
param =
new
Dictionary<string, string>
{
"
token"
, token },
{
"
email"
, forgotPasswordDto.Email }
var
callback = QueryHelpers.AddQueryString(forgotPasswordDto.ClientURI, param);
var
message =
new
Message(
new
string[] { user.Email },
"
Reset password token"
,
"
<h3>Please reset your password by clicking:</h3> "
+callback);
await
_emailSender.SendEmailAsync(message);
return
Ok(
"
successful fiseha"
);
Read the question carefully.
Understand that English isn't everyone's first language so be lenient of bad
spelling and grammar.
If a question is poorly phrased then either ask for clarification, ignore it, or
edit the question
and fix the problem. Insults are not welcome.
Don't tell someone to read the manual. Chances are they have and don't get it.
Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.