Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 加载页面时模式弹出窗口中的ASP.NET用户控件_C#_Asp.net_Dialog - Fatal编程技术网

C# 加载页面时模式弹出窗口中的ASP.NET用户控件

C# 加载页面时模式弹出窗口中的ASP.NET用户控件,c#,asp.net,dialog,C#,Asp.net,Dialog,因此,我有一个控件userlogin.ascx,当用户试图在未登录时访问某些页面时,我希望它弹出一个模式效果。我该怎么办?谢谢。我认为如果您使用jQuery对话框插件,您可以将URL加载到对话框中。 因此,请创建一个普通的.ASPX页面,将.ascx加载到该页面中,然后将url弹出到模式中: $("#divid").load('http://your.aspx').dialog({modal:true}); 请注意,您需要在调用页面上具有id为“divid”(或其他任何名称)的a div才能

因此,我有一个控件userlogin.ascx,当用户试图在未登录时访问某些页面时,我希望它弹出一个模式效果。我该怎么办?谢谢。

我认为如果您使用jQuery对话框插件,您可以将URL加载到对话框中。 因此,请创建一个普通的.ASPX页面,将.ascx加载到该页面中,然后将url弹出到模式中:

$("#divid").load('http://your.aspx').dialog({modal:true}); 
请注意,您需要在调用页面上具有id为“divid”(或其他任何名称)的a div才能工作。详情如下:

除此之外,您还可以将其放置在.js中的javascript函数中-在要弹出此函数的页面中,1)确保您的div在那里,2)在页面加载中,检查Request.IsAuthenticated,如果没有,则使用page.ScriptManager调用您的.js函数

如果你想保持整洁,把这个功能放到一个小小的.acsx控件中,然后把它放到你想要强制人们登录的页面上

最后,记住JavaScript可以关闭,所以你可能要考虑整个方法的安全性…如果您想坚持这一点,可以在用户第一次访问您的站点时执行一些javascript检测,例如使用jquery异步调用a.asmx或类似内容,并将例如Session[“userHasJavascript”]设置为true,但这也不能保证他们以后不会禁用它。
简而言之,您通常会更好地重定向到登录页面…

我会阅读Ajax control toolkit网站()上的示例,例如,这比仅仅打开一个模式窗口要困难一些,因为默认情况下.NET会尝试将您重定向到web.config中设置的登录页面。。。