Hi,
Could you try to test it in your local environment?
Use debug mode and development environment, you will see a password reset email in the log file.
Hi,
As I know we have no plan yet.
Hi,
Just an idea:
First, custom the tenant entity:
ObjectExtensionManager.Instance.Modules()
.ConfigureSaas(saas =>
{
saas.ConfigureTenant(tenant =>
{
tenant.AddOrUpdateProperty<string>( //property type: string
"AllowedIpAddress", //property name
property =>
{
}
);
});
});
Then, you can create a middleware that checks the login IP address:
app.Use(async (httpContext, next) =>
{
if(httpContext.Request.Path.ToString().Contains("account/login", StringComparison.InvariantCultureIgnoreCase))
{
var currentTenant = context.ServiceProvider.GetRequiredService<ICurrentTenant>();
if (currentTenant.IsAvailable)
{
var tenant = await context.ServiceProvider.GetRequiredService<ITenantRepository>().FindAsync(currentTenant.GetId());
var allowedIp = tenant.GetProperty<string>("AllowedIpAddress");
if (!string.IsNullOrEmpty(allowedIp))
{
var remoteIp = httpContext.Connection.RemoteIpAddress.ToString();
if (!remoteIp.Equals(allowedIp, StringComparison.InvariantCultureIgnoreCase))
{
throw new Exception("You are not allowed to login from this IP address.");
}
}
}
}
await next();
});
If you can share a simple project to reproduce the problem with me, I will check it. my email is shiwei.liang@volosoft.com
Hi,
I could not reproduce the problem.
I think this may be related to your email provider.
https://localhost:44365/Account/ResetPassword?userId=6cb51709-8caf-66d0-44b5-3a0ebad8fd0f&__tenant=&resetToken=CfDJ8F0Ag%2B9YCXxBrqRy%2FWFT1PwOb83zfpTH1GNKho0so8uKOn7OGfx1XEY8V5GUWf%2Fru9F%2BzzAkvQWgpnV%2BOIrw9ZS10o%2FYuJKRGVxCfNJSiZsAo%2FtI7ut%2Fl7QWQFFiG%2BxKWTgsZ5v9vGXdajuhtkbIWXeP2%2Fmr1KB2faai%2FSr3h2IC7ZL3vW%2B9MB9EVf02n3OcVlugGMhpL1BkMOa%2BSVe1fnWXc%2ByEaz1s3hiKGWC7nhqB&returnUrl=%2fconnect%2fauthorize%3fclient_id%3dQa_Blazor%26redirect_uri%3dhttps%253A%252F%252Flocalhost%253A44351%252Fauthentication%252Flogin-callback%26response_type%3dcode%26scope%3dopenid%2520profile%2520Qa%2520roles%2520email%2520phone%26state%3d577f62acb1654bb4b68bb833783987fb%26code_challenge%3da5VfcwyANEfbaFiBFrwm7GYldc3_Pi-i3GqXuBs8uc0%26code_challenge_method%3dS256%26response_mode%3dquery
Hi,
May I ask what version are you using?
Hi @balessi75
I couldn't reproduce the problem.
Hi,
You can try:
public class ClassificationMongoDbTestModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
var objectSerializer = new ObjectSerializer(x => true);
BsonSerializer.TryRegisterSerializer(objectSerializer);
}
......
}
And use [Collection(MongoTestCollection.Name)]
instead of [Collection(ClassificationTestConsts.CollectionDefinitionName)]
Hi,
Could you explain it in detail? thanks