2016-10-28 3 views
0

Я пишу приложение на основе нескольких приложений, и я хочу загрузить пользовательский вид из базы данных на URL-адрес (арендатор).Устранение идентификатора арендатора в VirtualPathProvider MVC5

I типа https://corporate.myapp.local/ в браузере, но в FileExists методе HttpContext.Current.Request.Url дают мне http://127.0.0.1/ он не говорит мне, какой домен это так я могу получить файл базы на домен и разрешить tenantid

public class ViewPathProvider : VirtualPathProvider, ICustomVirtualPathProvider 
    { 
     VirtualPathProvider ICustomVirtualPathProvider.Instance => this; 

     private readonly ILogger _logger; 
     private readonly IThemeService _themeService; 
     private readonly ISellutionSession _sellutionSession; 

     public ViewPathProvider(ILogger logger, IThemeService themeService, ISellutionSession sellutionSession) 
     { 
      _logger = logger; 
      _themeService = themeService; 
      _sellutionSession = sellutionSession; 
     } 

     public override bool FileExists(string virtualPath) 
     { 

      _logger.Log($"CurrentCompanyId: {_sellutionSession.GetCurrentCompany(HttpContext.Current.Request.Url).CompanyId}"); 

      var isViewExist = Pages.IsExistByVirtualPath(virtualPath); 
      return isViewExist || Previous.FileExists(virtualPath); 
     } 
+0

Я сделал что-то похожее на это, однако в контроллере просто получаю URL-адрес и использую его для определения идентификатора арендатора – Saravanan

ответ

0

Вы должны настроить ваш Среда разработки, позволяющая принимать поддомены, Это можно сделать, отредактировав файл applicationHost.config и файл хоста на компьютере.

необходимо изменить, как IIS Express запускает вашу среду разработки.

В Visual Studio 2015 щелкните правой кнопкой мыши файл решения.

Выберите «Открыть папку в File Explorer»

Перейти к папке, содержащей и искать .vs папку.

Внутри будет папка config, содержащая файл applicationhost.config.

Откройте его в текстовом редакторе (я использую Notepad ++)

При такой конфигурации/system.applicationHost/Сайты, вы должны увидеть свой сайт в переплетах с портом и локальный.

<binding protocol="http" bindingInformation="*:38254:localhost" /> 

Дублируйте эту строку и добавьте свой поддомен к этой привязке.

<binding protocol="http" bindingInformation="*:38254:m.localhost" /> 

Сохраните этот файл и перезагрузите проект.

Файл хоста необходимо также отправиться в наш файл Hosts, чтобы его изменить.

Перейти к C: \ Windows \ System32 \ Drivers \ Etc в Проводнике. Откройте файл HOSTS (он не имеет расширения) В нижней части файла hosts добавьте следующие две строки.

127.0.0.1 localhost 
127.0.0.2 m.localhost 

Сохраните файл.

необходимо предоставить администратору Visual Studio 2015 права на использование субдоменов.

Теперь мы можем запустить наш Visual Studio и посмотреть наш поддомен фактически run.st:3892

Вот link, чтобы помочь вам.