ASP.NET-Jquery load()不尊重web.config授权



我有一个支持Windows身份验证模式和匿名访问的asp.net intranet web应用程序。在我的web.config中,我为"安全"子文件夹设置了以下内容:

<location path="Secure">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>

问题是,如果我直接点击安全文件夹中的某个页面,我的凭据将被正确验证或质疑。然而,我这样做的方式是使用JQuery对话框从Secure文件夹加载()页面。安全文件夹中的页面隐藏代码不会执行(这是正确的),但任何静态内容都会发送200状态代码。这是JS代码:

$('#MyDivID_link').live('click', function (event) {
editDialog.load("Secure/MyEditPage.aspx", function (response, status, xhr) {
if (status == "error") {
$("#MyDivID_Win").html("You are not authorized to use this application or your web browser is not supported.<br><br>Please use Internet Explorer to edit content.");
} else {
$("#btnSubmit").show();
}
}).dialog('open');
return false; });

除了load()状态为200之外,这一切都能正常工作,因此返回静态内容,load方法认为一切都很好。

有人知道我如何配置我的应用程序以正确检查load()上的身份验证而不返回任何信息吗?或者还有其他JQuery方法可以更好地工作吗?由于intranet限制,我不想将"Secure"子文件夹设置为具有自己的web.config的虚拟目录(尽管此方法确实有效)。

有点令人困惑,所以如果我必须详细说明什么,请告诉我。谢谢你的帮助。

我最终通过将整个安全文件的内容封装在ID为"SecureContentWrapper"的div中并设置为runat="server"来管理它。然后,在安全页面的代码隐藏中,我根据允许的用户检查System.Web.HttpContext.Current.User.Identity.Name,如果此人没有访问权限,我会将SecureContentWrapperdiv的InnerText覆盖为权限警告。它完成了任务,并与JQueryUI对话框完美配合。

最新更新