Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача параметров между страницами. / 25 сообщений из 26, страница 1 из 2
22.09.2014, 06:58
    #38753184
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Привет всем дотнетовцам !

Не могу грамотно организовать передачу парамтров между страницами.

Почему ?

1) Сессия не удобна. Перезаписываетя. Например. Session["SelectedUserID"]. При открытие данные второго сотрудника , первое окно становится как второе.

2) Использования PreviuosPage тоже не идет. Потому что страницы открываются в разных окнах.

3) Яваскрипт через Opener запретили админы. Гвоврят все должно быть серверным. Да и Opener удобно , если передать данные из контрола текущей страницы в контроль целевой страницы. А мне как раз надо передать просто в переменную.


Кто что предложит ?
...
Рейтинг: 0 / 0
22.09.2014, 07:15
    #38753187
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777, query string?
...
Рейтинг: 0 / 0
22.09.2014, 07:19
    #38753188
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Так данные будут видны в адресной строке. Это вообще атас. Система должна быть максимально защищенной.

Спасибо.
...
Рейтинг: 0 / 0
22.09.2014, 07:38
    #38753190
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777, и что же такого секретного в SelectedUserID?
...
Рейтинг: 0 / 0
22.09.2014, 07:45
    #38753191
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Вопрос не понял. Если Вы про QueryString то ведь туда проставляя в SelectedUserID ID другого пользователя можно просмотриовать данные другого.

СПС.
...
Рейтинг: 0 / 0
22.09.2014, 07:50
    #38753194
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777, эта проблема должна решаться проверкой прав доступа. Есть права - видишь запрошенную информацию, нет прав - не видишь.
...
Рейтинг: 0 / 0
22.09.2014, 07:53
    #38753196
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Ну конечно. Думал может все таки есть что то оригинальное :-)

С уважением.
...
Рейтинг: 0 / 0
22.09.2014, 11:20
    #38753298
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777,

... если серверно и без истечения сессии - пишите в БД (создайте для этого отдельную таблицу) ...
...
Рейтинг: 0 / 0
22.09.2014, 12:02
    #38753338
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Как раз так и , если пользователь в течение 20 минут бездействует, то надо закрыть сессию.
Кстати, как можно принудительно закрыть приложение по истечению сесси ?
...
Рейтинг: 0 / 0
22.09.2014, 12:48
    #38753394
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777Кстати, как можно принудительно закрыть приложение по истечению сесси ?server push
...
Рейтинг: 0 / 0
22.09.2014, 12:49
    #38753395
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777, что значит "закрыть приложение по истечению сесси"? Как это должно выглядеть для пользователя? Его должно перенаправлять на страницу с надписью "goodbye"?
...
Рейтинг: 0 / 0
22.09.2014, 12:49
    #38753397
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
только браузер все равно задаст вопрос о том, позволить ли скрипту закрыть окно.
...
Рейтинг: 0 / 0
22.09.2014, 12:50
    #38753402
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
skyANA ,

Ты не телепат ? Угадал. Так и надо , что бы все было красиво. Это где то Session_end ?
...
Рейтинг: 0 / 0
22.09.2014, 12:56
    #38753408
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Не, событие Session_End наступает по внутреннему таймеру сервера. В этот момент нет никакого запроса и Redirect не выйдет.
Надо в цикл обработки запроса вставить проверку.
...
Рейтинг: 0 / 0
22.09.2014, 13:01
    #38753416
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
То есть страница каждую минуту должен проверять сесси на существования ?
...
Рейтинг: 0 / 0
22.09.2014, 13:05
    #38753420
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777, с просторов тырнета:

Add Global.asax class file in root of your application or website.
This method works only if Global.asax is present in application.


Write below mentioned code in Page_Init event of the page where we want to check for session timeout.
We can also put this code in in a class and inherit all pages of application from this class acting as base class for all pages to check for session timeout.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
protected void Page_Init(object sender, EventArgs e)
{
    if (Context.Session != null)
    {
        if (Session.IsNewSession)
        {
            HttpCookie newSessionIdCookie = Request.Cookies["ASP.NET_SessionId"];

            if (newSessionIdCookie != null)
            {
                string newSessionIdCookieValue = newSessionIdCookie.Value;

                if (newSessionIdCookieValue != string.Empty)
                {
                    // This means Session was timed Out and New Session was started
                    Response.Redirect("GoodBye.aspx");
                }
            }
        }
    }
}
...
Рейтинг: 0 / 0
22.09.2014, 13:07
    #38753421
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777То есть страница каждую минуту должен проверять сесси на существования ?

...если вы знаете время жизни сессии (стандартно 20 минут - например), то пусть джава-скрипт - а он запрещен? - тикает сет-таймаутом где-нибудь в уголке страницы, напоминая пользователю .. ну, в общем, это все костыли и велосипеды, переходите на веб-сервисы или WebAPI ... :)
...
Рейтинг: 0 / 0
22.09.2014, 13:45
    #38753473
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
carrotikantihacker777То есть страница каждую минуту должен проверять сесси на существования ?

...если вы знаете время жизни сессии (стандартно 20 минут - например), то пусть джава-скрипт - а он запрещен? - тикает сет-таймаутом где-нибудь в уголке страницы, напоминая пользователю .. ну, в общем, это все костыли и велосипеды, переходите на веб-сервисы или WebAPI ... :)

Но смотри тогда. Ровно через 20 минут сессия умрет. А ява будет проверят 21-ой минуте. Если пользователь сделает экшн между 20 и 21 то опять не красивое окно выйдет )
...
Рейтинг: 0 / 0
22.09.2014, 13:51
    #38753479
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777carrotikпропущено...


...если вы знаете время жизни сессии (стандартно 20 минут - например), то пусть джава-скрипт - а он запрещен? - тикает сет-таймаутом где-нибудь в уголке страницы, напоминая пользователю .. ну, в общем, это все костыли и велосипеды, переходите на веб-сервисы или WebAPI ... :)

Но смотри тогда. Ровно через 20 минут сессия умрет. А ява будет проверят 21-ой минуте. Если пользователь сделает экшн между 20 и 21 то опять не красивое окно выйдет )+1

Не понял решения :)
...
Рейтинг: 0 / 0
22.09.2014, 14:01
    #38753493
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777carrotikпропущено...


...если вы знаете время жизни сессии (стандартно 20 минут - например), то пусть джава-скрипт - а он запрещен? - тикает сет-таймаутом где-нибудь в уголке страницы, напоминая пользователю .. ну, в общем, это все костыли и велосипеды, переходите на веб-сервисы или WebAPI ... :)

Но смотри тогда. Ровно через 20 минут сессия умрет. А ява будет проверят 21-ой минуте. Если пользователь сделает экшн между 20 и 21 то опять не красивое окно выйдет )типичный признак косорукой архитектуры.
если запрос экшена синхронный (страница обновляется), то нет никаких проблем сделать редирект на красивую страницу, если асинхронный, то аналогичный редирект можно сделать клиентским скриптом.
и таймер не нужен.
...
Рейтинг: 0 / 0
22.09.2014, 14:20
    #38753515
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Так как выше писал, что клиентский скрипт запрещен по максимум, то думаю вариант с Page_Init более грамотный
...
Рейтинг: 0 / 0
22.09.2014, 14:27
    #38753523
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
skyANAantihacker777пропущено...


Но смотри тогда. Ровно через 20 минут сессия умрет. А ява будет проверят 21-ой минуте. Если пользователь сделает экшн между 20 и 21 то опять не красивое окно выйдет )+1

Не понял решения :)

...вот такой вот дубовый джава-скрипт на веб-форме

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<script type="text/javascript" language="javascript">
    var counter = 0;
    var mins = 19;
    var secs = mins * 60;
    
    function countdown() {
        setTimeout('Decrement()', 1000);
    }
    
    function Decrement() {
        if (document.getElementById) {
            minutes = document.getElementById("minutes");
            seconds = document.getElementById("seconds");
            if (seconds < 59) {
                seconds.value = secs;
            } else {
                minutes.value = getminutes();
                seconds.value = getseconds();
            }
            if (secs > 0) {
                secs--;
                setTimeout('Decrement()', 1000);
            } else {
            location.assign("SessionExpired.aspx");
            }
        }
    }
    
    function getminutes() {
            mins = Math.floor(secs / 60);
        return mins;
    }

    function getseconds() {
            return secs - Math.round(mins * 60);
    }



Код: html
1.
2.
3.
4.
5.
6.
7.
<div id="timer" align="right">
        Ваш сеанс заканчивается через
        <input id="minutes" type="text" style="width: 2%; border: none; font-weight: bold;">
        минут и
        <input id="seconds" type="text" style="width: 2%; border: none; font-weight: bold;">
        секунд.
    </div>
...
Рейтинг: 0 / 0
22.09.2014, 18:46
    #38753874
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
antihacker777Так как выше писал, что клиентский скрипт запрещен по максимумты написал, что запрещен opener, а он не нужен.

js вообще что ли запрещен? если да, то асинхронные запросы отпадают принципиально, и я вообще не вижу, в чем проблема. сколько бы окон не было, при протухшей сессии их все можно редиректить на страницу прощания.
...
Рейтинг: 0 / 0
23.09.2014, 06:46
    #38754159
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
Antonariyantihacker777Так как выше писал, что клиентский скрипт запрещен по максимумты написал, что запрещен opener, а он не нужен.

js вообще что ли запрещен? если да, то асинхронные запросы отпадают принципиально, и я вообще не вижу, в чем проблема. сколько бы окон не было, при протухшей сессии их все можно редиректить на страницу прощания.

3) Яваскрипт через Opener запретили админы. Гвоврят все должно быть серверным. Да и Opener удобно , если передать данные из контрола текущей страницы в контроль целевой страницы. А мне как раз надо передать просто в переменную.


Означает в том числе Opener. Все должно быть серверным.
...
Рейтинг: 0 / 0
23.09.2014, 06:57
    #38754162
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров между страницами.
И так. Все же пришлось использовать QueryString. Но что бы линокм,где есть параметрыс данными, не злоупотребляли нужно проверить права досутпа.

В голову приходит только так. На линк передаем ID пользователя.

Page_load
{

if (Request.QuryString["UserID"]!=Session["UserID"])
{
Response.Write("Попытка не санкцианированного доступа к данным");
}

}

Кто предложит лучше ? Кажись - мой вариант фигня какая та.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача параметров между страницами. / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]