所以我有一个控件userlogin.ascx,当用户在未登录时尝试访问某些页面时,我想弹出一个模态效果。我该怎么做?感谢。
答案 0 :(得分:0)
我认为如果您使用jQuery对话框插件,则可以将URL加载到对话框中。 那么做一个简单的.ASPX页面,将你的.ascx加载到那里,然后将url弹出到模态中:
$("#divid").load('http://your.aspx').dialog({modal:true});
请注意,您需要在调用页面上使用id为“divid”(或其他)的div来实现此功能。更多信息:http://docs.jquery.com/UI/Dialog#options
除此之外,你可以将它放在.js中的javascript函数中 - 在你要弹出它的页面中,1)确保你有div,2)在页面加载中,检查请求.IsAuthenticated,如果没有使用Page.ScriptManager来调用.js函数。
如果你想保持整洁,将该功能转移到一个小的.acsx控件中,然后你只需将它放在要强制登录的人的页面上。
最后,请记住javascript可以关闭,所以你可能想要考虑整体方法的安全性......如果你想坚持这一点,当用户第一次点击时可以做一些javascript检测您的网站,使用例如jquery to asynch调用.asmx或类似的,并设置例如会话[“userHasJavascript”]为true,但这并不能保证他们以后不会禁用它。 没错,你通常更好地重定向到登录页面......