jQuery модальное всплывающее окно для ASP.NET 2.o Page - PullRequest
3 голосов
/ 15 мая 2009

У меня есть веб-страница ASP.NET (не MVC) (HomePage.aspx) и другая страница (PRiceList.aspx). У меня есть функция входа в систему на моей домашней странице. Поэтому, когда пользователь заходит на сайт, они могут Перейдите на страницу pricelist.aspx легко, используя ссылку на домашней странице. Если кто-то входит на страницу без входа в систему, я хочу показать модальное поле для входа (фон отключен) для входа. Я видел это на сайте jqueryui. Может кто-нибудь сказать мне, как повлиять на это на моем сайте? Есть ли проблема безопасности в этом, так как я использую JavaScript для отправки учетных данных пользователя на сайт при использовании этого метода (я не уверен). Пожалуйста посоветуй. Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 15 мая 2009

jQuery диалог модальной формы это ваш путь сюда. Я сделал тестовое приложение, делая то, что вы хотели с ним, и оно работало хорошо.

Разметка для вашей страницы ASPX:

<div id="dialog" title="Please Login">
        <asp:Login ID="login" runat="server" />
</div>

Javascript, необходимый для страницы:

$(document).ready(function() {
$("#dialog").dialog({
    bgiframe: true,
    autoOpen: false,
    height: 300,
    modal: true,
    buttons: {
        Cancel: function() {
            $(this).dialog("close");
        }
    },
    close: function() {
        allFields.val("").removeClass("ui-state-error");
    }
});

var isAuthenticated = $("#isAuthenticated").val();
if (isAuthenticated && isAuthenticated == "false") {
    // Display the modal dialog.
    $("#dialog").dialog("open");
}});

Код, который я использовал на странице aspx:

ClientScript.RegisterHiddenField("isAuthenticated", "false");

Вы бы указали значение true или false, в зависимости от того, был ли пользователь аутентифицирован, поэтому javascript будет знать, отображать логин или нет.

Теперь о безопасности. Вход в систему не будет выполнен javascript, потому что пользователь нажмет кнопку на этой странице входа и отправит сообщение обратно на сервер, как обычно. Если вы хотите использовать ajax, вам нужно проверить метод jQuery $. Ajax .

2 голосов
/ 15 мая 2009

Использовать диалог jquery:

http://jqueryui.com/demos/dialog

Для этого нужно, чтобы вы также добавили модал в DOM.

jQuery(".loginPanel").each(function() 
{ 
   var popup = jQuery(this); 
   popup.parent().appendTo(jQuery("form:first")); 
});
...