Запрет перенаправления неавторизованных пользователей на страницы после записи URL-адресов в адресной строке - PullRequest
1 голос
/ 18 ноября 2011

Всякий раз, когда пользователь нажимает кнопку выхода из системы, он перенаправляется на страницу входа, после чего он не может вернуться назад, нажав кнопку назад .... но если он знает URL-адрес любой страницы, даже неавторизованной страницы, он может получить доступ к этой странице.Мне нужно сделать, чтобы он не мог получить доступ к любой странице, набрав urls..Plz help

Ответы [ 4 ]

1 голос
/ 18 ноября 2011

Вам необходимо настроить ваше веб-приложение с Аутентификация формы . Другие альтернативы - использовать Session или Cookies.

0 голосов
/ 30 октября 2014

Сэр, пожалуйста, напишите код в Web.config

<system.web>
    <authentication mode="Forms">
       <forms loginUrl="Login.aspx"
             protection="All"
             timeout="30"
             name=".ASPXAUTH"
             path="/"
             requireSSL="false"
             slidingExpiration="true"
             defaultUrl="default.aspx"
             cookieless="UseDeviceProfile"
             enableCrossAppRedirects="false" />
     </authentication>

     <authorization>
             <deny users="?" />
     </authorization>
</system.web>

Этот код не позволит ввести URL в адресную строку без логина.

0 голосов
/ 02 сентября 2013

Используйте переменную сеанса в page_load:

protected void Page_Load(object sender, EventArgs e)
{
    Session["loggedin"] = "false";
}

... и проверьте событие входа в систему. Если пользователь нажал кнопку входа в систему, установите переменную сеанса «true».

protected void btnOK_Click(object sender, EventArgs e)
{
    Session["loggedin"] = "true";
    ......
   ......
}

Когда страница перенаправляется на другую страницу, тогда проверьте состояние переменной сеанса в событии загрузки страницы.

    try
    {

        if (Session["loggedin"].ToString() == "false")
        {
            Response.Write("<script> alert('Session Expires! please login first'); </script>");

            Response.Redirect("login.aspx");
            return;
        }

    }
    catch (Exception er)
    {
        Response.Redirect("login.aspx");
    }
0 голосов
/ 18 ноября 2011

Вы можете поместить одну переменную сеанса на странице входа в систему, вставить какое-либо значение только тогда, когда пользователь попадет на любую страницу только через страницу входа. И проверяйте это значение сеанса при каждой загрузке страницы, если значение не совпадает с перенаправлением на страницу входа снова.

...