如何在果园中获得租户的基本网址?

时间:2014-11-27 22:07:30

标签: orchardcms

如何在Orchard中获取具有租户前缀的基本网址?我有一个租户根网址,例如domain.com/tenant

var httpContextAccessor = GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IHttpContextAccessor)) as IHttpContextAccessor;
var workContext = WorkContextExtensions.GetWorkContext(httpContextAccessor.Current().Request.RequestContext);
return workContext.CurrentSite.BaseUrl;

当我使用此代码时,我只获得http:\ domain.com,没有租户前缀。

非常感谢您的回答。

1 个答案:

答案 0 :(得分:1)

使用ShellSettings。此对象包含Settings.txt文件中定义的所有租户信息。

var settings = workContext.Resolve<ShellSettings>();
var host = settings.RequestUrlHost;  
var prefix = settings.RequestUrlPrefix;

现在,您需要将已经获得的基本网址与上面的租户前缀相结合。

如果您想获得考虑当前租户的相对路径,请使用Request.AppRelativeCurrentExecutionFilePath。例如。如果您的租户为example.com/tenant并且您要求提供网页example.com/tenant/mypage,则会返回~/mypage。根据您的情况,这可能也会有用。