【问题标题】:.NET Web Forms multiple product subscriptions under one account?.NET Web Forms 一个帐户下的多个产品订阅?
【发布时间】: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


【解决方案1】:

我们最终使用的解决方案是在链接中添加一个 URL 参数,用于指定您要编辑的网站。

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

此参数包含在列出用户所有网站的页面的“编辑网站”链接中。

如果存在,它会为用户设置一个会话 cookie。如果请求参数不存在,应用程序会查找正在设置的 cookie;这处理应用程序中的所有内部链接。如果 cookie 不存在且请求参数未设置,我们只需从列表中选择经过身份验证的用户的第一个订阅。

这并不完美,但到目前为止它没有问题。它造成的唯一后果是用户无法在同一浏览器会话中编辑多个网站,例如使用多个选项卡。这还没有导致任何支持问题,所以它几乎不是问题。

【讨论】:

    猜你喜欢
    • 2016-08-05
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2015-11-04
    • 2017-06-18
    • 1970-01-01
    • 2021-01-25
    相关资源
    最近更新 更多