我正在使用带有webmethods的JQuery AJAX。由于常规会话身份验证在webmethod中不起作用,因此保护webmethods的可能方法是什么,以便用户不会从客户端调试工具复制该url并使用它。
答案 0 :(得分:3)
您可以在网络方法中使用会话。只需将(true)添加到WebMethod属性中即可。
[WebMethod(true)]
public string MyMethod
如果您正在使用某些内置身份验证,则还可以使用:
[Authorize(Roles = "RoleName")]
答案 1 :(得分:1)
如果您的WebMethod与应用程序的其余部分不在同一个框中,您还可以传递某种盐渍和散列时间戳或其他信息作为通话中的参数之一。
webmethod本身内部的逻辑可以解码散列并将其与当前登录的用户和IP列表进行匹配和/或读取过期日期,以便在其他位置复制和调用时,该URL将无用。
如果WebMethods都是同一个应用程序的一部分,那么根据Session会是最好的选择。