在ASP.NET Web应用程序中,使用集成的Windows身份验证,会话是否与Windows身份相关联?换句话说,如果我使用IWA登录到应用程序,并且应用程序在我的会话中存储了一些“东西”,那么仅通过会话ID就可以访问这些内容吗?例如,如果某个恶意人士成功窃取了我的会话ID,但没有获得我的凭据,他能否访问我的会话内容?还是该会话仅对同一身份可访问,需要同时提供会话ID和Windows身份才能访问?
非常好的问题。在回答之前,我进行了测试以确认。
如果我是“人员A”,你是“人员B”,那么需要发生以下情况:
请注意,即使他们使用了人员A的会话详细信息,网站仍然认可人员B为“人员B”。因此,如果您有检查用户权限等代码,则这些检查仍在人员B的上下文中执行。
这可能听起来像一个巨大的问题,但只要程序员不粗心大意,它就不是真正的问题。例如,在我的测试中,人员B获得的唯一影响是他们继承了人员A设置的屏幕和网格布局,因为我们实时进行权限检查(即它们不会被缓存)。如果您在会话中存储敏感数据,则可能会出现问题,但只有在每次显示它们时未经过权限检查的字段才是问题。如果人员A的会话已过期,则这也只是一个问题。