.NET Web Формирует несколько подписок на продукты под одной учетной записью? - PullRequest
0 голосов
/ 10 мая 2011

Справочная информация:
Я работаю над устаревшими приложениями ASP.NET 3.5 Web Forms.Приложение позволяет пользователям покупать подписку на веб-сайт «white label», который создается для них, и они могут настраивать ее дальше.Он использует проверку подлинности с помощью форм.

Типичным примером использования является то, что пользователь создает учетную запись в нашей системе, покупает веб-сайт, а затем приступает к настройке своего веб-сайта.URL, который они будут использовать для редактирования своего купленного сайта, выглядит примерно так: https://www.example.com/EditWebsite.aspx.В нашем наборе инструментов для редактирования веб-сайтов есть также много других страниц с другими URL-адресами.

Проблема:
Теперь перед моей командой стоит задача разрешить пользователям использовать одну учетную запись для доступа к нескольким подпискам на веб-сайты.,Это означает, что один аутентифицированный пользователь может пытаться получить доступ к одному из многих веб-сайтов для редактирования, если он использует URL, упомянутый выше.В нашей системе можно узнать о нескольких IDах подписок на Пользователя, но веб-приложение редактора веб-сайта поддерживает только одну подписку.

Чтобы пояснить более простой пример: это было бы так, как если бы Google внезапно позволил вампросмотреть два разных почтовых ящика с одной учетной записи GMail.Как система узнает, к какому из них вы пытаетесь обратиться, если URL-адреса одинаковы для обоих?

Изначально мы хотели изменить приложение на использование таких URL-адресов, как: https://www.example.com/[subID]/EditWebsite.aspx, что даст нам всю информацию, которую мынеобходимо отправить пользователя на правильный сайт.Для этого мы изучили URL Routing , но, похоже, нам пришлось бы изменить все внутренние ссылки веб-приложения, чтобы использовать конфигурацию маршрута для создания правильных URL-адресов.Возможно, у нас здесь неправильная идея, но кажется, что слишком много работы для унаследованного приложения.

Еще одно потенциальное решение, которое мы нашли, - это просто использовать веб-приложение панели управления нашей системы (где они нажимают ссылки, чтобы редактировать любыеих веб-сайтов), чтобы установить сессионный cookie-файл, который может прочитать наше веб-приложение для редактирования веб-сайта, чтобы узнать, какой веб-сайт нужно открытьЭто имеет недостаток, заключающийся в том, что страницы не будут иметь закладки, и вы не сможете одновременно просматривать несколько веб-сайтов на разных вкладках одного и того же браузера.

Вопрос (ы):
Есть ли другие варианты, которые мы не исследовали или не продумали?Существуют ли другие веб-сайты, которые допускают такое поведение;как они справляются с этим?Является ли URL Routing правильным способом сделать это, и нам просто нужно сделать решающий шаг?

Любой вклад приветствуется!

1 Ответ

0 голосов
/ 09 мая 2012

Решением, которое мы использовали, было добавление в ссылку параметра URL, который указывает, какой веб-сайт вы пытаетесь редактировать.

https://www.example.com/EditWebsite.aspx?subID=123

Этот параметр включен в ссылки на «Редактировать веб-сайт» изстраница, на которой перечислены все веб-сайты пользователя.

При наличии это устанавливает cookie сеанса для пользователя.Если параметр запроса отсутствует, приложение ищет установленный файл cookie;это обрабатывает все внутренние ссылки в приложении.если файл cookie не существует и параметр запроса не был установлен, мы просто выбираем первую подписку аутентифицированного пользователя из списка.

Это не идеально, но до сих пор работало без проблем.Единственное последствие, которое это вызвало, заключается в том, что пользователь не может редактировать несколько веб-сайтов в одном сеансе браузера, например, используя несколько вкладок.Это не привело к возникновению каких-либо проблем со службой поддержки, хотя, по большому счету, это не проблема.

...