C# MVC多租户应用程序
嗨,我有一个多租户应用程序,我的问题是,租户a有权加载页面,而另一个租户B没有。我在ActionResult GetCars上有此属性[AllowAnonymous],但租户B无权访问此页面 处理这种情况的最佳方法是什么?我可以改写这个异名吗 谢谢你的建议 更新C# MVC多租户应用程序,c#,asp.net-mvc,attributes,multi-tenant,C#,Asp.net Mvc,Attributes,Multi Tenant,嗨,我有一个多租户应用程序,我的问题是,租户a有权加载页面,而另一个租户B没有。我在ActionResult GetCars上有此属性[AllowAnonymous],但租户B无权访问此页面 处理这种情况的最佳方法是什么?我可以改写这个异名吗 谢谢你的建议 更新 我使用子域来识别公共站点上的租户。。。因此,tenant1.site.com可以看到公共站点,而tenant2.site.com不应该看到公共站点 更新二 目前我在BaseController中有这个代码,但我对此不满意 prote
我使用子域来识别公共站点上的租户。。。因此,tenant1.site.com可以看到公共站点,而tenant2.site.com不应该看到公共站点 更新二
目前我在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 });
}
}
}
您需要查看用户角色谢谢您的回答,但在这种情况下,我不能使用用户角色,因为用户此时未登录。在这种情况下,这是标记为AllowAnonymous的公共站点。租户A可以查看此公共站点,而租户B不能。我更新了我的问题…如果是公共的,则是公共的。除非您知道租户B的IP地址,否则您无法阻止未登录的用户。然后您可以查看IP地址阻止。是的,我知道,但我不需要IP!我可以用子域处理这个问题。如果像租户B这样的子域,则重定向到登录页面…但如果用户已登录,则在将url粘贴到浏览器中时,他将无法看到此页面。。。见更新二