【问题标题】:ASP.NET Membership Force HTTPS on PostBackASP.NET 成员在 PostBack 上强制使用 HTTPS
【发布时间】:2010-02-18 18:51:22
【问题描述】:

我在 ASP.NET 3.5 网站的主页上有一个登录表单,出于性能原因,需要使用标准 HTTP 连接访问该表单。由于 ASP.NET 页面的正常回发是对帖子的相对调用,这意味着当浏览器发布时,这些值是在不受保护的情况下发送的。

我想做以下两件事之一来确保安全:

  1. 强制回发到同一页面的安全
  2. 使用 HTTPS 连接将帖子发送到其他页面

有没有办法实现选项一?

我也在查看身份验证服务,但查看 URL 引用它使用的是相对路径:

Sys.Services._AuthenticationService.DefaultWebServicePath = '../Authentication_JSON_AppService.axd';

我没有看到一种方法可以覆盖它以放入 HTTP 路径。

【问题讨论】:

    标签: asp.net asp.net-ajax


    【解决方案1】:

    【讨论】:

    • 跨页发帖不会转到其他页面吗?我试图保持在同一页面上,因为我必须在同一页面上发送回验证和错误消息。
    【解决方案2】:

    您可以使用 javascript 更改表单的 action 属性,以告诉它使用 https 提交到不同的页面。我已经这样做了,效果很好。

    您也可以将其更改为使用 https 提交到同一页面,但我认为 asp.net 会抱怨这一点(不确定 - 从未尝试过)。

    示例脚本:

    document.forms[0].action = "https://www.whatever.com/submit_page.aspx";
    

    【讨论】:

    • 你能指出这种方法的工作版本吗?由于需要额外的测试,我想避免编写自定义 JavaScript 函数。
    • 我不能给你看我的,但脚本很简单 - 我编辑了我的答案,因为它在评论中显示不好。
    • Ray,你是用 ASP.NET 3.5 Web 窗体来做这个的吗?我收到了一个视图状态验证错误,我尝试了这种方法。视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保 配置指定相同的验证密钥和验证算法。 AutoGenerate 不能在集群中使用。
    • 实际上,我使用这个帖子的页面是一个 HttpHandler,所以接收端没有视图状态验证。如果您要回发到同一页面,那么您可能无法做到这一点。您可以尝试关闭视图状态和页面验证,看看会发生什么。
    • 我必须设置 enableViewStateMac 才能工作。 Matt Sollars 仅通过服务器端编码提出了类似的建议,URL:codeproject.com/KB/web-security/…
    猜你喜欢
    • 1970-01-01
    • 2019-03-11
    • 2015-06-25
    • 2011-10-25
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 2015-06-22
    • 2019-07-09
    相关资源
    最近更新 更多