如何在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,没有租户前缀。
非常感谢您的回答。
答案 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
。根据您的情况,这可能也会有用。