【问题标题】:Redirect from JavaScript从 JavaScript 重定向
【发布时间】:2011-12-01 00:25:04
【问题描述】:

我正在开发一个内部网络应用程序,我们正在使用在服务器端生成的安全查询字符串密钥来实现一些简单的安全性,以防止用户访问他们没有被授予访问权限的页面。我目前正在处理的页面通过 AJAX 调用获取数据并将其呈现在页面上的表格中。每行都有一个编辑按钮,该按钮将用户带到一个包含更多信息的编辑页面,该行的 id 保存在查询字符串中。由于每个行 ID 都是唯一的,因此每个编辑页面的键对于该行-用户组合都是唯一的。

我的问题是我需要能够以某种方式从服务器获取这些安全查询字符串密钥,以允许 JavaScript 重定向用户。我无法移动密钥生成器客户端,因为这为用户提供了为他们无权访问的页面生成自己的密钥的可能性。同样,我不能在 Web 服务中公开生成器。

基本上,这归结为我很难找到一种方法将数据从客户端发送到服务器以生成安全密钥,然后将用户重定向到新页面。

不完全确定我是否 100% 清楚,但我会在出现问题时对其进行编辑。

【问题讨论】:

  • cookie 中存储的 sessionId 有什么问题?
  • 看不出这与我想做的事情有什么关系,你能解释一下吗?
  • 在进行AJAX调用时是否无法生成安全密钥并将其与数据一起发送?
  • 为什么不在给定页面发出请求时生成所有密钥,然后将它们与原始页面一起发送?
  • 我想我可以这样做,但这意味着产生的工作量比需要的多得多,因为您只会在任何给定时间编辑一个,这会增加初始 AJAX 请求时间。不过,我认为小数据集的时差不会很大。

标签: javascript asp.net ajax web-services security


【解决方案1】:

您的问题有点不清楚,但PageMethods 可能适用于此:

[WebMethod]
public static string GetSecureID()
{
    return "Secure";
}

clientRedirectSecure = function() {
    PageMethods.GetSecureID(onSuccess, onFailure);
} 
onSuccess = function(result) {
    window.location.href = "somepage.aspx?id=" + result;
} 
onFailure = function(error) {
    alert(error);
} 

这是一篇讨论PageMethods的文章:
http://blogs.microsoft.co.il/blogs/gilf/archive/2008/10/04/asp-net-ajax-pagemethods.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2013-09-27
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多