我是ASP.NET的新手。我有一个关于表单身份验证的问题,我有一个带有表单身份验证的Web应用程序(HPE),它已部署到IIS中,
Web服务器中有一个Eligibility网站,它是用经典ASP开发的,它使用表单身份验证。该主网站链接到Web应用程序,如HPE,CHDP,BCCDP等。当我单击HPE链接时,我将重定向到HPE应用程序,我将HPE票证超时设置为20分钟(与主站点相同)。
当我在HPE中停留超过20分钟(做一些事情以保持HPE票证有效)时,我点击侧栏CHDP链接(指向CHDP应用程序),它将直接进入超时页面而不是CHDP应用程序。当我在HPE应用程序中停留20分钟时,有什么办法可以转到主站点的其他页面吗?
以下是web.config中的HPE身份验证部分
<system.web>
<authentication mode="Forms">
<forms name=".HPEAUTH" loginUrl="Logout.aspx?go=login" timeout="20" defaultUrl="/Eligibility/Cookiemonster.asp" requireSSL="false" protection="All" path="/" slidingExpiration="true"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
很抱歉,我在资格(主站点)目录中找不到任何web.config文件。任何想法或者会非常感激。
答案 0 :(得分:0)
要在多个应用程序中使用相同的身份验证Cookie,您必须确保machineKey
文件的web.config
部分在所有应用上设置为相同的内容。
来自MSDN:
以下示例显示了Web.config的“身份验证”部分 文件。除非另有说明,否则名称,保护,路径, validationKey,validation,decryptionKey和decryption属性 所有应用程序必须相同。同样,加密 和验证密钥值以及加密方案和验证 用于身份验证票证(cookie数据)的方案必须相同。 如果设置不匹配,则无法共享身份验证票证。 有关如何为validationKey和。生成值的信息 decryptionKey属性,请参见如何:在ASP.NET中配置MachineKey 2.0。 (本主题适用于ASP.NET 2.0及更高版本。)
<configuration>
<system.web>
<authentication mode="Forms" >
<!-- The name, protection, and path attributes must match
exactly in each Web.config file. -->
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH"
protection="All"
path="/"
domain="contoso.com"
timeout="30" />
</authentication>
<!-- Validation and decryption keys must exactly match and cannot
be set to "AutoGenerate". The validation and decryption
algorithms must also be the same. -->
<machineKey
validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
validation="SHA1" />
</system.web>
</configuration>