您好我有一个多租户应用程序,我的问题是,租户A有权加载页面而另一个租户B没有。我在ActionResult GetCars上有这个属性[AllowAnonymous],但是租户B无权访问此页面。
处理这种情况的最佳方法是什么?我可以覆盖这个AllowAnonymous吗?
感谢任何想法...
更新
我使用子域名来识别公共站点上的租户...因此,tenant1.site.com可以看到公共站点,而tenant2.site.com不应该看到公共站点......
更新II
在片刻我在BaseController中有这个代码,但我对此并不满意......
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
var cultureName = CultureHelper.GetNeutralCulture(CultureHelper.GetCurrentCulture());
cultureName = CultureHelper.GetImplementedCulture(cultureName);
filterContext.RouteData.Values["language"] = cultureName.ToUpper();
var tenantDTO = System.Web.HttpContext.Current.Cache["Tenant"] as TenantDTO;
if (!string.IsNullOrWhiteSpace(tenantDTO.SubDomain))
{
if (tenantDTO.SubDomain != "tenantB" && !Request.IsAuthenticated && !filterContext.RouteData.Values["Action"].Equals("DoLogin"))
{
filterContext.Result = RedirectToAction(AuthenticationController.DoLoginFunction, AuthenticationController.ControllerName, new { area = AuthenticationController.AreaName });
}
}
}