租借名称无效

时间:2017-12-27 10:20:16

标签: aspnetboilerplate asp.net-boilerplate

我正在开发一个ASP.NET Boilerplate服务项目。

当我保存客户端时,它会返回错误:

  

租赁名称无效

租赁名称包含空格。 TenantDto映射到Tenant对象,没有任何错误。数据库表TenancyName列为nvarchar(64)。保存时出错。

2 个答案:

答案 0 :(得分:1)

来自Tenant Management的文档:

  

AbpTenant类定义了一些基本属性,最重要的是:

     
      
  • 租期名称:这是应用程序中租户的唯一名称。它不应该正常改变。它可用于将子域分配给租户,例如 mytenant .mydomain.com'。租户。 TenancyNameRegex 常量定义命名规则。
  •   
  • 名称:租户的任意,人类可读的长名称。
  •   

TenancyNameRegex"^[a-zA-Z][a-zA-Z0-9_-]{1,}$",因为子域名中不允许使用空格。

如上所述,使用Name作为租户的人类可读名称(带空格)。

答案 1 :(得分:1)

在保存租户之前,它会针对 TenancyNameRegex 正则表达式进行验证。因此,租户名称不能包含空间(按设计)。 不要删除正则表达式检查,但添加客户端验证以检查租户名称。

protected virtual Task ValidateTenancyNameAsync(string tenancyName)
{
    if (!Regex.IsMatch(tenancyName, AbpTenant<TUser>.TenancyNameRegex))
    {
         throw new UserFriendlyException(L("InvalidTenancyName"));
    }

    return Task.FromResult(0);
}

参见code =&gt; https://github.com/aspnetboilerplate/aspnetboilerplate/blob/45fe6d9f38b79ab111eaf2a54b507b87c92e544e/src/Abp.Zero.Common/MultiTenancy/AbpTenantManager.cs#L222