租户名称无效
Invalid Tenancy Name
我正在从事 ASP.NET 样板服务项目。
当我保存客户端时,它 returns 一个错误:
Tenancy Name is not valid
租户名称包含空格。
TenantDto
映射到 Tenant
对象没有任何错误。数据库 table TenancyName
列是 nvarchar(64)
。保存时出错
来自 Tenant Management 上的文档:
AbpTenant class defines some base properties, most important ones are:
- TenancyName: This is unique name of a tenant in the application. It should not be changed normally. It can be used to allocate subdomains to tenants like 'mytenant.mydomain.com'. Tenant.TenancyNameRegex constant defines the naming rule.
- Name: An arbitrary, human-readable, long name of the tenant.
TenancyNameRegex
是 "^[a-zA-Z][a-zA-Z0-9_-]{1,}$"
,因为子域中不允许有空格。
如上所述,使用 Name
作为租户的人类可读名称(带空格)。
在保存租户之前,它正在根据 TenancyNameRegex 正则表达式进行验证。因此,租户名称不能包含 space(按设计)。
不要删除正则表达式检查,而是添加客户端验证来检查租户名称。
protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
{
throw new UserFriendlyException(L("InvalidTenancyName"));
}
return Task.FromResult(0);
}
我正在从事 ASP.NET 样板服务项目。
当我保存客户端时,它 returns 一个错误:
Tenancy Name is not valid
租户名称包含空格。
TenantDto
映射到 Tenant
对象没有任何错误。数据库 table TenancyName
列是 nvarchar(64)
。保存时出错
来自 Tenant Management 上的文档:
AbpTenant class defines some base properties, most important ones are:
- TenancyName: This is unique name of a tenant in the application. It should not be changed normally. It can be used to allocate subdomains to tenants like 'mytenant.mydomain.com'. Tenant.TenancyNameRegex constant defines the naming rule.
- Name: An arbitrary, human-readable, long name of the tenant.
TenancyNameRegex
是 "^[a-zA-Z][a-zA-Z0-9_-]{1,}$"
,因为子域中不允许有空格。
如上所述,使用 Name
作为租户的人类可读名称(带空格)。
在保存租户之前,它正在根据 TenancyNameRegex 正则表达式进行验证。因此,租户名称不能包含 space(按设计)。 不要删除正则表达式检查,而是添加客户端验证来检查租户名称。
protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
{
throw new UserFriendlyException(L("InvalidTenancyName"));
}
return Task.FromResult(0);
}