我们目前正在构建一个提供多个子域(通配符子域)的Webapp。在我们的应用程序中,用户可能会针对一个或多个子域进行身份验证(就像Basecamp一样)。
我们想知道保存和加载用户凭据的最佳策略是什么。主要问题是我们的用户可能在不同的子域(他们可能是管理员,帐户所有者,客户端等)中具有不同的角色,并且他们使用相同的凭据来签署所有子域。我们正在使用ASP.net MVC2& .Net 4.0。
我们正在考虑的选项是:
在登录时加载所有用户信息和角色并将其保存在会话中(会话保存在SQL Server数据库中)
仅在会话中保存UserId。在每个请求中,我们根据请求子域重新加载角色并检查所请求操作的授权。
将UserId保存在cookie中,并执行与上一个选项相同的加载策略。
非常感谢你的帮助!
答案 0 :(得分:0)
尝试为所有子域创建Cookie:
Response.Cookies[cookieName].Domain = ".domain.com";