我正在将 JQuery AJAX 与 webmethods 一起使用。由于常规会话身份验证在 webmethod 中不起作用,因此保护 webmethods 的可能方法是什么,以便用户不会从客户端调试工具复制该 url 并使用它。
问问题
1590 次
2 回答
3
您可以在 Web 方法中使用会话。只需将 (true) 添加到您的 WebMethod 属性中。
[WebMethod(true)]
public string MyMethod
如果您正在使用一些内置身份验证,您还可以使用:
[Authorize(Roles = "RoleName")]
于 2013-09-16T16:30:08.830 回答
1
如果您的 WebMethod 与应用程序的其他部分不在同一个盒子上,您还可以传入某种加盐和哈希时间戳或其他信息作为调用中的参数之一。
然后,webmethod 本身内部的逻辑可以解码散列并将其与当前登录的用户和 IP 列表匹配和/或读取到期日期,因此如果在其他地方复制和调用该 url 将无用。
如果 WebMethods 都是同一个应用程序的一部分,那么仅取决于 Session 将是您最好的选择。
于 2013-09-16T16:38:45.947 回答