2012-09-13 17 views
2

我感到非常惊讶:我在同一个网站下创建了2个独立的应用程序(比方说2个不同的客户端)。我有每个web.config单独的登录/密码列表,但我可以将第一个应用程序的HttpContext.Current.User.Identity.Name到第二个应用程序!HttpContext.Current.User.Identity.Name在所有同一网站的应用程序中共享:是不是不安全?

虽然会话变量不在2之间共享,但是这对HttpContext.Current.User.Identity.Name来说还是很不安全?这将意味着客户端2将能够访问客户端1用户浏览到客户端2应用程序而无需向客户端2网站进行认证。

回答

3

如果您在使用每个应用程序的web.config文件machineKey元素不同的解密密钥,这将确保用户无法在应用程序之间进行切换而不重新登录。里面传来下面

来自实例MSDN

<machineKey 
    validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE" 
    decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" 
    validation="SHA1" /> 

您还可能能够使用IsolateApps修改,而不是生成密钥的,但我发现,在级别设置专门的按键,你希望他们分享给你在过程中加以控制。您可以在线找到各种工具来生成这些密钥,或者您可以根据Microsoft的加密类推出自己的工具。

请注意,在IIS结构中更高级别的web.config中设置的按键会自动“下坡”到子应用程序,除非您在web.config中专门覆盖它。这可能就是你的情况。

+0

非常感谢。 – user310291

相关问题