asp.net简化了多个客户空间的登录

时间:2011-12-01 21:11:11

标签: asp.net architecture routing

我正在开发一个多租户的asp.net应用程序,并想知道以下是否是一种简化登录过程的可行方法。

我想为每个帐户提供自己唯一的地址,例如www.website.com/customer1,www.website.com/customer2,wwwwebsite.com/customer3等。

customer1文件夹不存在,404处理程序页面将从地址的customer1部分推断出该帐户。然后,它将显示标准登录页面,但也可以包括客户的徽标和自定义内容,并且还知道在尝试登录时,它必须仅针对与customer1帐户关联的帐户检查用户名。

我建议的流程是一个黑客攻击,我想知道是否有更优雅的方法来实现这一目标。

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用ASP.NET routing来执行此操作?只需定义您需要的任何自定义路由,并让ASP.NET将您的客户重定向到自定义登录页面。

请注意:.NET 3.5中添加了ASP.NET路由。

答案 1 :(得分:1)

如果您有.Net 4可用,请尝试查看ASP.Net Routing以建立所有“customer1”类型的地址。然后,您可以在默认页面上抓取路径加载应用适当的样式,甚至可以根据需要使用不同的功能。

答案 2 :(得分:0)

我更喜欢子域来识别租户。然后,您可以使用相同的底层代码库来解决问题,并且每个租户都没有讨厌的虚拟目录文件夹:

http://cusotmer1.website.com

http://cusotmer2.website.com

http://cusotmer3.website.com

使用此方法稍后缩放也更容易。如果您需要子域1-100在服务器A上运行,那么它就是一个简单的DNS /负载均衡器......或者用于指导流量变化的任何内容。

关于路由的注意事项:它非常适合您的应用程序,但是您是否希望每次添加客户端时都更改路由规则?