1、租户登录:
基于abp实施的identityserver4授权中心,多租户登录时必须指定当前租户ID,以便将当前租户ID包含在令牌中。
将请求标头添加到登录界面:__tenant:“租户ID”
2、实现多租户
一般来说,直接启用多租户:
MultiTenancyConsts.IsEnabla = true
但是,如果您是多数据库多租户,则需要配置租户存储,否则将抛出“找不到租户存储”异常。
具体步骤:
域层
引用nuget包:Volo.Abp.TenantManagement.Domain,并依赖于AbpTenantManagementDomainModule模块
domain.shared层
引用nuget包Volo.Abp.TenantManagement.Domain.Shared取决于AbpTenantManagementDomainSharedModule模块;
实体框架层
引用nuget包:Volo.Abp.TenantManagement.EntityFrameworkCore,它依赖于AbpTenantManagementEntityFrameworkCoreModule模块;
dbcontext连接字符串必须与数据库中存储的名称相同,即,存储在AbpTenantConnectionStrings表中的名称与dbcontext记录的ConnectionStringName一致
在ABP里,一个仓储类实现IRepository<TEntity,TPrimaryKey>接口。ABP默认地为每个实体类型自动创建一个默认仓储。你可以直接注入IRepository<TEntity>(或IRepository<TEntity,TPrimaryKey>)。首先写一个一般处理程序来获取到你要加载到前台的数据,并序列化成json格式。
//代码实例public class AjaxUserList : IHttpHandler {
public void ProcessRequest(HttpContext context) {
context.Response.ContentType = "text/plain"
BLL.UserInfoBll userInfoBll = new BLL.UserInfoBll()
int pageIndex
if (!int.TryParse(context.Request["pageIndex"],out pageIndex)) {
pageIndex = 1
}
int pageSize = 5
int pageCount = userInfoBll.GetPageCount(pageSize)
//判断当前页码的取值范围
pageIndex = pageIndex < 1 ? 1 : pageIndex
pageIndex = pageIndex > pageCount ? pageCount : pageIndex
//获取分页数据
List<Model.UserInfo> userList = userInfoBll.GetPageList(pageIndex, pageSize)
//获取页码条
string pageBar = Util.PageBar.GetPageBar(pageIndex, pageCount)
//***********************************************************
//使用匿名类将多组数据序列化成Json格式
//***********************************************************
JavaScriptSerializer js = new JavaScriptSerializer()
string json = js.Serialize(new { resultUserList = userList, resultPageBar = pageBar })//此处使用了匿名类将userList集合和pageBar进行封装后,再序列化
//***********************************************************
context.Response.Write(json)
}
public bool IsReusable {
get {
return false
}
}
}
然后,前台ajax请求这个一般处理处理程序获取到json数据,再通过js将数据添加到html。
//加载用户列表示例function LoadUserInfo(pageIndex) {
$.post("AjaxUserList.ashx", { "pageIndex": pageIndex }, function (data) {
var serverData = $.parseJSON(data)
for (var i = 0 i < serverData.resultUserList.length i++) {
$("<tr><td>" + serverData.resultUserList[i].ID + "</td><td>" + serverData.resultUserList[i].UName + "</td><td>" + serverData.resultUserList[i].UPwd + "</td><td>" + ChangeDateFormat(serverData.resultUserList[i].SubTime) + "</td><td>" + serverData.resultUserList[i].Remark + "</td><td><a href='javascript:void(0)' class='details' Uid='" + serverData.resultUserList[i].ID + "'>详细</a></td><td><a href='javascript:void(0)' class='edits' Uid='" + serverData.resultUserList[i].ID + "'>编辑</a> <a href='javascript:void(0)' class='deletes' Uid='" + serverData.resultUserList[i].ID + "' UName='" + serverData.resultUserList[i].UName + "'>删除</a></td></tr>").appendTo("#tabUserList")
}
})
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)