ASP.net MVC2上具有多子域的会话

时间:2010-10-06 13:35:09

标签: asp.net-mvc-2 session cookies subdomain

我们目前正在构建一个提供多个子域(通配符子域)的Webapp。在我们的应用程序中,用户可能会针对一个或多个子域进行身份验证(就像Basecamp一样)。

我们想知道保存和加载用户凭据的最佳策略是什么。主要问题是我们的用户可能在不同的子域(他们可能是管理员,帐户所有者,客户端等)中具有不同的角色,并且他们使用相同的凭据来签署所有子域。我们正在使用ASP.net MVC2& .Net 4.0。

我们正在考虑的选项是:

  • 在登录时加载所有用户信息和角色并将其保存在会话中(会话保存在SQL Server数据库中)

  • 仅在会话中保存UserId。在每个请求中,我们根据请求子域重新加载角色并检查所请求操作的授权。

  • 将UserId保存在cookie中,并执行与上一个选项相同的加载策略。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

尝试为所有子域创建Cookie:

Response.Cookies[cookieName].Domain = ".domain.com";

[1] http://www.15seconds.com/issue/971108.htm