【问题标题】:Do i need to add the function AntiForgery.GetHtml() in all of the web pages that i create?我需要在我创建的所有网页中添加函数 AntiForgery.GetHtml() 吗?
【发布时间】:2015-02-12 12:25:25
【问题描述】:

我正在开发一个 ASP.NET 网页应用程序。我看到在 Visual Studio 中创建的默认网页应用程序包括对 AntiForgery.GetHtml() 的函数调用。我研究并理解了这个调用和 AntiForgery.Validate() 调用的功能。但是现在我的问题是我应该在我创建的所有网页中包含这个函数调用吗?即使我在我的 _Layout.cshtml 文件中添加了 AntiForgery.GetHtml(),我也必须添加第二个函数来验证我所有内容页面中的页面。请让我知道这样做的正确方法以及需要这样做的原因。

【问题讨论】:

    标签: .net asp.net-webpages antiforgerytoken


    【解决方案1】:

    尝试将它写在 HTTP 模块中 http://msdn.microsoft.com/en-us/library/aa479332.aspx

    【讨论】:

      【解决方案2】:

      我在另一个论坛上得到了这个问题的答案。答案很简单,AntiForgery.GetHtml() 和 AntiForgery.Validate() 函数应该只在那些具有最终将由用户在回发期间提交的表单数据的网页中使用。

      以下是原始答案的链接。

      http://forums.asp.net/t/2024282.aspx?Do+i+need+to+add+the+function+AntiForgery+GetHtml+in+all+of+the+web+pages+that+i+create+

      谢谢大家。

      【讨论】:

        【解决方案3】:

        如何在每个文件夹中放置一个“index.html” 在您的网站上,包括.....`

        <!DOCTYPE html>
        <head>
        <meta http-equiv="refresh" content="0; url=http://MY HOME PAGE">
        <title>ACCESS DENIED</title>
        </head>
        
        <body>
        <h1>ACCESS DENIED</h1>
        </body>
        </html>
        

        我知道这不是 asp,但如果你想这样做,它会让人们远离你的文件夹。

        【讨论】:

        • 我不确定上述想法是否可行,但如果 ASP.NET 网页库为我提供了一个内置函数来检查伪造,那么我想这一定是最合适的方法。
        • 不,一旦发送了表格,它就不会起作用,我想你已经看到了吗? msdn.microsoft.com/en-us/library/dd470175.aspx
        • 您发布的上述链接指向在 ASP.NET Web 应用程序的 MVC 模式的情况下使用的方法。我正在开发一个普通的 ASP.NET 网页应用程序,它不使用诸如 MVC 之类的模式。它更类似于 PHP。
        【解决方案4】:

        您可以将该函数放在 Page_Init 事件中 if (IsPostBack)

        在母版页中

        【讨论】:

        • 很抱歉,这不是通常的 ASP.NET Web 窗体应用程序。我正在开发的是一个 ASP.NET 网页应用程序。
        • 您的应用程序中有母版页吗?
        • 没有。母版页的概念仅存在于 ASP.NET Web 窗体应用程序中。我正在开发一个 ASP.NET 网页应用程序。
        猜你喜欢
        • 2023-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 2011-12-18
        • 2016-09-30
        • 1970-01-01
        相关资源
        最近更新 更多