【发布时间】:2011-08-22 16:14:20
【问题描述】:
背景:
我正在开发旧版 ASP.NET 3.5 Web 窗体应用程序。该应用程序允许用户购买为他们生成的“白标”网站的订阅,他们可以进一步定制。它使用表单身份验证。
一个典型的用例是用户在我们的系统上创建一个帐户,购买一个网站,然后继续自定义他们的网站。他们将用来编辑他们购买的网站的 URL 是这样的:https://www.example.com/EditWebsite.aspx。在我们的网站编辑工具箱中还有许多其他页面带有其他 URL。
问题:
我的团队现在的任务是允许人们使用一个帐户访问多个网站订阅。这意味着如果一个经过身份验证的用户使用上述 URL,他们可能会尝试访问多个网站之一进行编辑。我们的系统可以识别每个用户的多个订阅 ID,但网站编辑器网络应用仅支持一个订阅。
用一个更简单的例子来澄清一下:这就像谷歌突然允许您使用一个 GMail 帐户查看两个不同的收件箱一样。如果两者的 URL 相同,系统如何知道您尝试访问的是哪一个?
我们最初希望将应用程序更改为使用以下 URL:https://www.example.com/[subID]/EditWebsite.aspx,这将为我们提供将用户发送到正确网站所需的所有信息。我们查看了URL Routing 来完成此操作,但似乎我们必须更改所有 Web 应用程序的内部链接才能使用路由配置来生成正确的 URL。也许我们在这里有错误的想法,但对于遗留应用程序来说似乎工作量太大。
我们想出的另一个潜在解决方案是简单地使用我们系统的控制面板网络应用程序(他们单击链接以编辑他们的任何网站)设置一个会话 cookie,我们的编辑网站网络应用程序可以读取该会话 cookie 以了解要访问哪个网站培养。这样做的缺点是页面不能添加书签,并且您无法在同一浏览器的不同选项卡中同时查看多个网站。
问题:
还有其他我们没有调查或想到的选择吗?是否有任何其他网站允许这种行为?他们如何处理? URL Routing 是正确的方法吗?我们只需要尝试一下吗?
感谢任何输入!
【问题讨论】:
-
嗯,在这个问题上缺乏活动让我觉得其他人和我们在这个问题上一样难过...... :(
标签: asp.net-3.5 url-routing webforms