2

最近我了解到您可以使用脚本管理器并设置 EnablePageMethods="true" 这是我想做的事情,但有任何安全隐患吗?

另外,有没有更新更好的方法呢?

4

2 回答 2

4

真正要做的就是生成一个内联 JavaScript 代理,它允许通过语法EnablePageMethods="true"进行回调。ASP.NET AJAX Page MethodsPageMethods

我更喜欢通过它的.ajax()方法使用 jQuery 来调用ASP.NET AJAX Page Methods,像这样:

代码隐藏

[WebMethod]
public static string GetDate()
{
    return DateTime.Now.ToString();
}

JavaScript:

$.ajax({
    type: "POST",
    url: "PageName.aspx/GetDate",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        // Do something interesting here.
    }
});

注意:既然ASP.NET AJAX Page Methods自动序列化他们的响应JSON,那么"json"就是AJAX调用的返回dataTypecontentType描述您发送到服务器的内容。

于 2013-07-19T19:17:57.107 回答
3

与向网站添加任何普通网页或服务相比,它没有更多的安全隐患。所需的预防措施是相同的——在没有先验证之前不要使用任何输入,不要在错误消息中无意中返回敏感信息等。

如果您不介意切换到新平台,还有一种更新的方法,可以说是更好的方法:ASP.Net MVC和相关的“Web API”。(您也可以将 Web API 与 Webforms 一起使用,感谢 Karl Anderson 在评论中的说明。)

于 2013-07-19T19:15:42.683 回答