我有一个ASP.NET 3.5应用程序,我最近使用多个成员资格和角色提供程序进行扩展,以在该应用程序中“附加”第二个应用程序。我无法直接访问IIS配置,因此我无法将其分解到单独的应用程序目录中。ASP.NET 3.5多角色提供程序
这就是说,我已成功分离登录;然而,在我登录后,我可以通过自定义角色例程验证用户所属的组,并且我可以为两个“应用程序”使用不同密码的相同用户名。
我遇到的问题是,当我使用与其他成员身份相同的用户名(它在目录上使用web.config角色)创建用户时,我可以手动将URL切换到其他应用程序,并且它拿起用户名,并加载该应用程序的角色。很明显,这是不好的,因为它允许用户创建一个有权访问其他应用程序的用户名,并与其他用户的角色交叉到另一个应用程序中。
我该如何缓解这种情况?如果我仅限于一个应用程序与多个角色和成员提供者一起工作,并且auth cookie存储明显可转移的用户名,那么我能做些什么吗?
我意识到情况并不理想,但这些都是目前强加的限制。
示例性认证(在验证):
FormsAuthentication.SetAuthCookie(usr.UserName, false);
此cookie需要被基于用户令牌我怀疑的,而不是用户名,以便将两个提供分开?那可能吗?
是的,它们被应用程序名称分开。有两个具有不同应用程序名称的角色提供者,以及两个具有不同应用程序名称的成员提供者(当然,角色与成员资格相匹配)。 – Dudeinco