【问题标题】:How can I detect if my .NET assembly is running from web site or from a desktop machine?如何检测我的 .NET 程序集是从网站运行还是从台式机运行?
【发布时间】:2011-03-12 07:19:35
【问题描述】:

我只想在我的程序集中编写代码,以检测它是在“桌面计算机”上运行,还是在 ASP.NET 应用程序的上下文中运行。这是至关重要的人,(许可目的),我不想因为我做错了而被解雇。

所以,请直截了当,请给我一些代码 sn-p。

编辑:我取决于你的答案

EDIT v 2.0:如何在程序集中使用:

[assembly: "AspNetHostingPermission (SecurityAction.RequestRefuge, Unrestricted=true)]"

防止在网络上执行?

【问题讨论】:

    标签: c# .net asp.net vb.net visual-studio


    【解决方案1】:

    检查 HttpContext.Current 是否为空,然后报告它没有作为 Web 应用运行,例如:

    if (HttpContext.Current == null) {
         // Report that it is not running as web app.
    }
    

    你必须在你的引用和你的 using 声明中引用 System.Web。

    【讨论】:

    • 你说得有道理。我在一份声明中将您的提案与上述 (afolkesson) 合并。
    • 根据经验,我应该指出,如果他们从新线程检查 HttpContext 它将为空,有时即使在当前线程中它也为空......不像变量那么可靠......
    【解决方案2】:

    【讨论】:

    • 你可能是对的。我没有搜索它,我只看到输入问题后列出的内容。所以,我给你学分。我会检查一下。谢谢。
    • 现在我在想:如果有人创建一个可执行文件(控制台)并调用它,相同的代码是否仍然有效?我没有使用 ASP.NET 的经验,也不知道其中的技巧。
    猜你喜欢
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 2019-10-10
    相关资源
    最近更新 更多