Всплывающее окно защищено паролем - PullRequest
0 голосов
/ 08 апреля 2010

Пожалуйста, не поймите, что я полностью понимаю, что это глупая идея, но это не моя идея.

Мы должны удерживать людей, посещающих определенную страницу нашего сайта.Это написано на ASP, и я не знаю ASP!Может кто-нибудь сказать мне, как я могу иметь всплывающее окно загрузки при посещении URL, где люди должны ввести имя пользователя / пароль.

Имя пользователя / пароль должны быть сохранены в JavaScript.

(Да, я знаю)

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

Итак, страница - test.asp - всплывает javascript, вводятся учетные данные, и если право остается на test.asp

Спасибо

Ответы [ 4 ]

1 голос
/ 08 апреля 2010

Это можно создать модальное диалоговое окно, используя Javascript. Есть разумные учебники по этому вопросу здесь и текст ссылки и список уже существующих библиотек, которые охватывают модальные диалоги здесь .

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

1 голос
/ 08 апреля 2010

Когда вы говорите ASP, я предполагаю, что вы имеете в виду pre .NET. Если так, то я думаю, что небольшое изменение VB / HTML на странице будет лучше. Конечно, это только пример, и не очень безопасный, но все же он немного лучше простого решения JS.

Пример - thenameofthepage.asp

<%

needAuthentication = True

If Request.Form.Count > 0 Then 
    If Request.Form("username") <> "jon" Or Request.Form("password") <> "secret" Then
        ' Redirect to another URI
        Response.Redirect("/")
        Response.End
    End If
    needAuthentication = False
End If

%>
<html>
<body>
<%

If needAuthentication Then

%>
<form method="post" action="thenameofthepage.asp">
  <div>Username: <input type="text" name="username" /></div>
  <div>Password: <input type="text" name="password" /></div>
  <div><input type="submit" value="Submit" /></div>
</form>
<%

Else

%>
<p>Page content here</p>
<%

End If

%>
</body>
</html>
1 голос
/ 08 апреля 2010

Очень-очень неправильно, но это должно быть:

var passwords = new Object;
passwords['some user'] = 'some password';

function check_password(tries){
    var username = prompt('Please enter your username');
    var password = prompt('Please enter your password');
    if(passwords[username] != password){
        if(tries == 3){
            window.location = 'http://www.google.com/';
        }else{
            check_password(tries + 1);
        }
    }
}
check_password(1);

Чтобы убедиться, что кто-то не может получить пароль сразу, вы можете использовать некоторый алгоритм хеширования.И если вы добавите display:none на все важные элементы, вы сможете сделать так, чтобы содержимое отображалось только при входе в систему

.
0 голосов
/ 08 апреля 2010

Конечно, это глупая идея.

Но не задумывались ли вы о добавлении дополнительного тонкого слоя защиты ... т.е. вместо того, чтобы вызывать модал JavaScript (или в дополнение к нему), вы можете перенаправить на пароль + '.asp'?

Пример, следующая страница называется something.asp. Таким образом, вы можете сделать пароль something, а затем сделать

window.location = userInput + '.asp';

Это немного более запутано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...