Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проверка пароля в JavaScript / 10 сообщений из 10, страница 1 из 1
03.07.2014, 07:26
    #38686378
Гость03072014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Доброго времени суток!
По заданию требуется запаролить некие пункты меню(причем не хотят вести отделной ролью через админку, хотят некий один пароль, который дает доступ в некоторым пунктам меню, чтобы запрашивался при выборе пункта). Пока сделано вот как:
1. В ActionLink (данного пунта меню) ставлю
Код: javascript
1.
onclick = "return GetPassword();"


2. В GetPassword запрашиваю пароль. Проверяю его при помощи getJSON.

Вопрос вот в чем, как мне в основной функции AskPassword дождаться отработки функции описанной в getJSON, перед тем как сделать return, т.е. добиться синхронного вызова ?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
                    var pwd="";
                    var rt=false;

                    pwd=prompt("Введите пароль:",pwd);
                    $.getJSON("@Url.Action("CheckPwd","MyReport")", { pwd: pwd },
                    function (retData) 
                    { 
                        .... тут в зависимости от данных в retData меняется rt    
                    });

                    alert(rt); // пока стоит этот алерт - все ок, 
                                // если его убрать, то возвращает всегда false, т.к. не успевает отработать getJSON.

                   return rt;  
...
Рейтинг: 0 / 0
03.07.2014, 09:49
    #38686456
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
а пункты меню - это ссылки?

если отключить js, проверки пароля вообще не будет?
...
Рейтинг: 0 / 0
03.07.2014, 09:52
    #38686461
Гость03072014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Гость03072014,

как вариант, вместо алерта попробовал завести переменную, и в конце работы функции getJSON присваивать ей некое заданое значение, а перед return добавить while с условием по этому значению. Однако коряво получается, сначала подвисон, потом браузер предлагает остановить работу скрипта, т.к. он замедляет работу.
...
Рейтинг: 0 / 0
03.07.2014, 11:09
    #38686566
Гость03072014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Яростный Меч,

1. Да, пункты меню это ActionLink-и.
2. Да, проверю. Я предполагал, что просто не будет работать переход на страницу.
...
Рейтинг: 0 / 0
03.07.2014, 11:21
    #38686580
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Предлагаю посмотреть в сторону Basic-аутентификации.
...
Рейтинг: 0 / 0
03.07.2014, 11:38
    #38686609
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Гость03072014,
Зачем вам вам всякие проверки пароля на странице, что за детство.
если запаролили линк, пользователь ввел пароль, на сервере запомнили его как хорошего.( предварительно проверив пароль)
и тут же отправляйте его его на страницу которую он запросил...
...
Рейтинг: 0 / 0
03.07.2014, 11:53
    #38686638
Boneshock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
авторесли его убрать, то возвращает всегда false, т.к. не успевает отработать getJSON.
очевидно из-за того, что getJson работает асинхронно

авторВопрос вот в чем, как мне в основной функции AskPassword дождаться отработки функции описанной в getJSON
запускать getJson в синхронном режиме

Но в целом задание - хрень какая-то, оно точно нужно?
...
Рейтинг: 0 / 0
03.07.2014, 12:34
    #38686712
Гость03072014
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Boneshock,

Спасибо всем за ответы. Конечно проще было бы использовать стандартную авторизацию (админка, роль и т.д.), но в задании именно так описано. Пока просто добавил это -

Код: javascript
1.
2.
3.
$.ajaxSetup({
async: false
});
...
Рейтинг: 0 / 0
03.07.2014, 12:51
    #38686735
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
Гость03072014,
если в задании написано так
то
Код: javascript
1.
2.
3.
4.
5.
6.
7.
 function (retData) 
                    { 
                       // .... тут в зависимости от данных в retData меняется rt    
                        eval(retData.scr);
                      // scr  скрипт при удачном стечении, добавляет куки авторизации, перенаправляет на запрошенную страницу
                      //  с последующей проверкой.
                    });
...
Рейтинг: 0 / 0
03.07.2014, 13:26
    #38686770
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка пароля в JavaScript
НахлобучПредлагаю посмотреть в сторону Basic-аутентификации.+1

при этом не понадобится:
1) prompt("Введите пароль:",pwd) - диалог выскочит самостоятельно
2) проверка пароля аяксом
3) прочее-прочее-прочее...
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / проверка пароля в JavaScript / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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