asp.net core web 是否可以限制绑定的url?

mc 3,701 信誉分
2024-04-21T00:51:21.8633333+00:00

我想给别人写一套web系统,想限制他们就只能用某一个域名 xxx.com不能使用别的,自己双击打开或者在IIS中都不能绑定其他的。

这样可以实现么?

最好是能够native aot这样别人不能反编译。

ASP.NET Core
ASP.NET Core
.NET Framework 中一套用于生成 Web 应用程序和 XML Web 服务的技术。
22 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Brando Zhang-MSFT 2,956 信誉分 Microsoft 供应商
    2024-04-22T09:36:20.8666667+00:00

    你好,

    我们可以考虑在ASP.NET Core的middleware里面来检查当前request的host,如果host不是设置的,就直接跳过下面的middleware从而实现只能使用一个域名。

    具体实现方式如下,把custom middleware放在program.cs里面的最上方。

    //....
    var app = builder.Build();
    
    // Configure the HTTP request pipeline.
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
        app.UseHsts();
    }
    
    app.Use(async (context, next) =>
    {
    
        var result = context.Request.Host.Host;
    
        if (result =="localhost")
        {
            await next(context);
        }
        else {
    
            await context.Response.WriteAsync("wrong domain" );
        }
    
        // Call the next delegate/middleware in the pipeline.
    
    });
    
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    app.UseAuthorization();
    
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    
    

    Result:

    User's image

    如果答案有帮助,请点击“接受答案”并点赞。 注意:如果您想接收此线程的相关电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知。


0 个其他答案

排序依据: 非常有帮助