如果您在每个应用程序的 web.config 中的 machinekey 元素中使用不同的解密密钥,它将确保用户在不重新登录的情况下无法在应用程序之间导航。
以下示例来自MSDN:
<machineKey
validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1" />
您也许还可以使用 IsolateApps 修饰符而不是生成键,但我发现专门将键设置在您希望它们共享的级别可以让您更好地控制该过程。您可以在线找到各种工具来生成这些密钥,或者您可以根据 Microsoft 的加密类自行开发。
请注意,在 IIS 结构中较高级别的 web.config 中设置的密钥会自动“下坡”流向子应用程序,除非您在其 web.config 中专门覆盖它。你的情况可能就是这样。