忽略.NET身份验证表单Cookie

时间:2019-07-10 14:50:38

标签: asp.net vb.net

我有一个用于登录的身份验证表单应用程序,其中包含两个模板,一个在登录时显示,一个在会话未登录时显示。 第二个.net应用程序(在同一域中),我们称其为InternalApp,在web.config上将登录名设置为身份验证表单。 当我尝试访问InternalApp时,它会正确地将我重定向到Login App,并在其中放置我的凭据并通过成功访问被重定向回InternalApp。 奇怪的是,在身份验证超时(设置为2880)之后,内部应用程序再次将我重定向到登录应用程序,即使在插入登录名之后 我被困在登录模板上,因为在登录并重定向到内部应用程序后,此人似乎没有看到新的登录cookie并将我弹回到登录应用程序(而是向我显示了登录模板) )

仔细阅读一下,我确保两个应用程序的web.config文件中的机器密钥相同,并确保它们对身份验证表单使用相同的名称,路径,域和超时

唯一的区别是在身份验证标签中:对于身份验证应用程序中的loginUrl,我设置为“〜/ Login.aspx”,但是在InternalApp中,我将该页面设置为rel路径(因为在其他应用程序中,在另一个文件夹中)loginUrl =“ / RelPath / Login.aspx”

我什至检查了设置和未添加登录功能中设置的cookie (Response.Cookies.Set而不是Response.Cookies.Add),并且在两个应用程序中,cookie都在两个应用程序中具有相同的值(表单名称为MY_AUTH_FORM_NEW)

(此处是两个应用程序中的身份验证标签,但loginUrl和defaultUrl除外)

    <authentication mode="Forms">
        <forms cookieless="UseCookies" name=".MY_AUTH_FORM_NEW" 
           loginUrl="~/Login.aspx" timeout="2880" protection="All" 
           defaultUrl="~/Login.aspx" enableCrossAppRedirects="true" 
           domain="my.domain.com"/>
    </authentication>
    <authorization>
        <deny users="?"/>
        <allow users="*"/>
    </authorization>

我做错了什么,以使其在当天的首次登录时完美地协同工作,然后在同一会话中超时后中断了?

0 个答案:

没有答案