3

我有一个 ASP.NET 网页(不是 MVC)(HomePage.aspx)和另一个页面(PRiceList.aspx)。我的主页中有登录功能。所以当用户登录网站时,他们可以去pricelist.aspx 页面很容易使用主页中的链接。如果有人在没有登录的情况下进入页面,我想显示一个模式登录框(背景禁用)来登录。我在 jqueryui 网站上看到了这个。谁能告诉我如何在我的网站上实现这个?这是否存在任何安全问题,因为我在使用此方法时使用 javascript 将用户凭据发送到站点(我不确定)。请指教。提前致谢

4

2 回答 2

7

jQuery Modal Form Dialog 是你可以去这里的方式。我做了一个测试应用程序做你想做的事,它运行良好。

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");

你会给它真或假,这取决于用户是否经过身份验证,所以 javascript 会知道是否显示登录名。

现在关于安全性。登录不会由 javascript 完成,因为用户会点击该登录页面上的按钮,然后它会像往常一样发回服务器。如果您想使用 ajax,则必须查看 jQuery $.ajax方法。

于 2009-05-15T06:17:06.083 回答
2

使用 jquery 对话框:

http://jqueryui.com/demos/dialog

这也需要您将模式添加回 DOM。

jQuery(".loginPanel").each(function() 
{ 
   var popup = jQuery(this); 
   popup.parent().appendTo(jQuery("form:first")); 
});
于 2009-05-15T05:51:30.933 回答