在服务中,我编写了一个简单的函数来获取特定用户的租户 ID
[AbpAuthorize]
public int? FindTenancyNameByUserNameOrEmail(string userNameOrEmail)
{
var qry = (from p in _memberRepository.GetAll()
where p.UserName == userNameOrEmail || p.EmailAddress == userNameOrEmail
select p).FirstOrDefault();
if (qry != null)
{
return qry.TenantId;
}
else
{
throw new Exception("User not found");
}
}
我从帐户 Controller 的登录功能调用此功能。
public async Task<JsonResult> Login(LoginViewModel loginModel, string returnUrl = "", string returnUrlHash = "")
{
var tenancyid = _memberAppService.FindTenancyNameByUserNameOrEmail(loginModel.UsernameOrEmailAddress.Trim());
//bla bla code
}
我收到以下错误:
Exception thrown: 'Abp.Authorization.AbpAuthorizationException' in Abp.dll
Additional information: Current user did not login to the application!
最佳答案
问题是用户不属于租户。
使用以下行设置租户 ID 和有效代码。
CurrentUnitOfWork.SetFilterParameter(AbpDataFilters.MayHaveTenant, AbpDataFilters.Parameters.TenantId, intTenancyId);
向服务方法添加了[AbpAllowAnonymous]
属性
关于asp.net - 从服务调用函数时出现"Current user did not login to the application!"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951233/