JanardhanSharma Ответов: 2

Проблема выхода из системы Iframes в ASP.NET (перенаправление страницы входа происходит только в iframe)


Я использую 3 Iframes на главной странице.

элементы 1, на которые ссылается в TopMenu.aspx-файл
iframe-2 ссылается на WelcomePage.aspx
элементы 3, на которые ссылается в BottomMenu.aspx-файл


Я поместил кнопку выхода из системы (то есть ImgbtnLogOut) в TopMenu.aspx, который ссылается на iframe-1

onclcick кнопки выхода из системы, я пытаюсь убить сеанс, а затем пытаюсь перенаправить на страницу login.aspx.

проблема здесь заключается в том, что я поместил кнопку выхода в TopMenu.aspx, перенаправление происходит только в Iframe-1, но не учитывая весь экран. Могу ли я знать, что как я могу разрешить такой зонд?..

Что я уже пробовал:

protected void ImgbtnLogOut_Click(object sender, ImageClickEventArgs e)
{
      Session.RemoveAll();
      Session.Abandon();
      FormsAuthentication.SignOut();
      FormsAuthentication.RedirectToLoginPage();
      //Response.Redirect("~/Login.aspx");
}

Я использую проверку подлинности форм
===========================================================
СЕТЬ.Конфиг
===========================================================

<authentication mode="Forms">
      <forms loginUrl="Login.aspx"  enableCrossAppRedirects="false">
      </forms>
</authentication>

============================================================
Вот исходный код главной страницы
============================================================
<body class="size-960">
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
 <div style="text-align: center">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div id="topframe">
                  <input id="UserPassword" runat="server" type="hidden" />
                    <iframe height="175px" width="1000px" scrolling="no" id="TopFrame" name="TopFrame"

                        frameborder="0" src="TopMenu.aspx"> <%--85px--%>
                    </iframe>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
        
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
                    <center>
                     <iframe height="480px" width="1000px"   id="MainFrame" name="MainFrame"

                             frameborder="0" src="AccountDetails.aspx"> <%--580px--%>
                        </iframe>
                    </center>
                </ContentTemplate>
            </asp:UpdatePanel>
        </asp:ContentPlaceHolder>
       <asp:UpdatePanel ID="UpdatePanel3" runat="server">
            <ContentTemplate>
                <center>
                    <iframe height="30px" width="1000px" scrolling="no" id="BottomFrame" name="BottomFrame"

                       frameborder="0" src="BottomMenu.aspx"> 
                    </iframe>
                </center>
            </ContentTemplate>
        </asp:UpdatePanel><%--85px--%>
        <div id="warning" style="display: none">
         
        </div>
    </div>
    </form>
</body>

2 Ответов

Рейтинг:
2

Saam Abbas

You have to set the cookieSameSite= "None" in the session state tag to avoid this issue. I have tried this and working well.

<sessionState cookieSameSite="None"  cookieless="false" timeout="360">
</sessionState>


Пожалуйста, проверьте приведенный ниже URL-адрес:

Проблема с сеансом в iFrame после недавнего обновления windows | The ASP.NET форумы[^]


https://support.microsoft.com/en-us/help/4524420/kb4524420[^]


OriginalGriff

Хотя я аплодирую вашему стремлению помогать людям, это хорошая идея придерживаться новых вопросов, а не 3-летних. После такого количества времени маловероятно, что оригинальный плакат вообще заинтересован в проблеме больше - особенно с тех пор, как он дал свое решение в течение часа...
Ответы на старые вопросы можно рассматривать как охоту за репостами, которая является формой злоупотребления сайтом. Более триггерные счастливые среди нас начнут процесс запрета вас с сайта, если вы не будете осторожны. Придерживайтесь новых вопросов, и все будет хорошо.

Рейтинг:
0

JanardhanSharma

Я получил ответ.

window.parent.location.href="/KB/answers/Login.aspx"
заставляет меня добиваться этого.. Но является ли это правильным путем для его достижения?

protected void ImgbtnLogOut_Click(object sender, ImageClickEventArgs e)
        {
            Session.RemoveAll();
            Session.Abandon();
            FormsAuthentication.SignOut();
            //FormsAuthentication.RedirectToLoginPage();
            ClientScript.RegisterStartupScript(GetType(), "Load", "<script type='text/javascript'>window.parent.location.href = 'Login.aspx'; </script>");            
        }