c# - 如何保护asp.net应用程序仅在指定域上运行?

标签 c# asp.net web-applications

我打算在共享主机帐户上发布一个 ASP.NET 预编译网站,但我不希望我的代码被复制并能够在另一个域上运行。我需要检查域,如果不是 example.com 或 www.example.com 则重定向到错误页面或显示错误作为响应。

编辑:这是我根据给定答案的解决方案

void Application_BeginRequest(object sender, EventArgs e)
{
    string[] safeDomains = new string[] { "localhost",
    "example.com", "www.example.com" };

    if (!((IList)safeDomains).Contains(Request.ServerVariables["SERVER_NAME"]))
    {
        Response.Write("Domain not allowed!");
        Response.End();
    }
}

最佳答案

如果提前知道域,为什么不在 global.asax 的 Application_BeginRequest 处理程序中检查 SERVER_NAME 服务器变量?如果它不是您预先确定的域之一,则将该请求踢至错误页面。

这个link向您显示各种可用的服务器变量和一些示例输出。

Rick Strahl 也有一个非常好的 blog post关于解析变量以获取有关您的请求的各种信息。这是一个很好的引用。

希望这有帮助!

关于c# - 如何保护asp.net应用程序仅在指定域上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253783/

相关文章:

c# - 如何使用 c# 在 asp.net 2.0 中创建条形图和饼图?

java - 将 Tomcat 设置为在错误加载 Web 应用程序时死机

c# - 在运行时向 ToolStrip 添加项

c# - MySQL 中带有波兰语字符的 AES_DECRYPT() 和 AES_ENCRYPT()

c# - 不使用 CS0200 替换字典值

c# - 尝试访问 asp.net 中继器内的按钮

C# - MySQL 与 Microsoft SQL Server

asp.net - 将azure db添加到mvc5项目

web-applications - 对 Web 应用程序执行压力测试?

facebook - 如何为 facebook 编写特定的应用程序?