Перезапись URL-адреса в приложении ASP.NET

Как перенаправить URL-адрес на основе зарегистрированного клиента в С# .net или asp.net 4.0. Например, если клиент регистрируется как «client1», а наш веб-сайт — www.mycompany.com, для каждой страницы клиент должен получить доход www.client1.mycompany.com.

Более подробный пример:

Например, создан еще один клиент — Client2. Страницы, которые я создал, в целом похожи на

 "www.mycompany.com/product.aspx" 
 "www.mycompany.com/categories.aspx" should be shown as
 "www.client2.mycompany.com/product.aspx" and
 "www.client2.mycompany.com/categories.aspx" respectively

Я искал в Интернете и нашел статические страницы или использовал Gloabal.asax во время запуска приложения, но ничего не нашел после входа пользователя в систему.


person user1978222    schedule 21.01.2013    source источник
comment
Я могу использовать, но я не хочу создавать отдельные страницы для каждого клиента. Это просто изменение URL-адреса для идентификации и того, чтобы они чувствовали себя в своем собственном домене.   -  person user1978222    schedule 21.01.2013
comment
Мы внедрили подобную систему в свое время, и есть способы сделать это с переписыванием URL. Тем не менее, в конечном итоге мы пошли по маршруту со статическими файлами со сценарием публикации, который создает все отдельные клиентские папки для каждой сборки просто потому, что он добавляет уровень изоляции, чтобы разработчик не мог случайно испортить все клиентские среды. сразу. Я бы рекомендовал то же самое.   -  person mellamokb    schedule 21.01.2013
comment
Дубликат вашего собственного вопроса: stackoverflow .com/questions/14324897/   -  person MikeSmithDev    schedule 22.01.2013


Ответы (2)


Я делал что-то подобное раньше на нескольких сайтах, и есть несколько методов, которые вы могли бы использовать. Предполагая, что у вас есть настройка URL-адреса, так что все субдомены ( *.url.com) будут отправлять любого пользователя на ваш сервер, и у вас есть настройка IIS для обработки их всех (т.е. не требуется заголовок хоста, только IP) на том же сайте, который вы можете используйте один из следующих методов:

  1. После входа просто отправьте пользователя на этот URL. Поскольку .Net не заботит URL-адрес, который сервер знает, как его отобразить, то все должно быть так просто. Это предполагает, что вся ваша навигация использует относительные пути, и вы должны включить совместное использование файлов cookie для этого домена. Это требуется, если куки для входа были предоставлены на 1.url.com, а вы отправляете их на 2.url.com. Вы можете поделиться куки в том же домене, требует небольшой работы, но может быть сделано.
  2. Создайте общую страницу входа, которая отправляет запрос веб-службы обратно на сервер, чтобы узнать, может ли пользователь войти в систему. Если он или она может отправить обратно в браузер команду вместе с правильным URL-адресом, которая сообщает браузеру клиента о необходимости публикации непосредственно на странице входа на этот сайт (отправить имя пользователя, пароль). Это позволит им войти на свой сайт и правильно назначить файлы cookie с одной простой страницы входа. Вы даже можете создать внешнюю страницу входа, которая существует только для этой цели. В конце концов, все, что делала общая страница, заключалось в том, чтобы посмотреть, могут ли они войти в систему, и отправить свои учетные данные на правильную страницу, которая выполнила вход. Я рекомендую это сделать в посте с ssl из соображений безопасности.

Я надеюсь, что с тех пор.

person Joe    schedule 21.01.2013

Есть проект под названием UrlRewritingNet, который я использую — он довольно старый, но исходный код доступен, так что вы можете перекомпилировать его для версии 4.0.

Ссылка находится по адресу http://urlrewriting.net/149/en/home.html.

person Matt    schedule 21.01.2013