C# 我如何允许我的网站用户拥有一个带有.net核心的个人URL?

C# 我如何允许我的网站用户拥有一个带有.net核心的个人URL?,c#,.net-core,azure-web-app-service,razor-pages,C#,.net Core,Azure Web App Service,Razor Pages,如果我的站点位于example.com,并且我有一个名为Joe的用户,我如何允许Joe(或在该站点注册的任何其他人)拥有个人/自定义URL,如example.com/Joe?我正在使用Azure中托管的Razor Pages.net core 3.1和自定义域 目录结构如下所示: example.com/Users/Index?id=1 could rewrite to example.com/Joe example.com/Profiles/Index?id=7 could rewrite t

如果我的站点位于example.com,并且我有一个名为Joe的用户,我如何允许Joe(或在该站点注册的任何其他人)拥有个人/自定义URL,如example.com/Joe?我正在使用Azure中托管的Razor Pages.net core 3.1和自定义域

目录结构如下所示:

example.com/Users/Index?id=1 could rewrite to example.com/Joe
example.com/Profiles/Index?id=7 could rewrite to example.com/Joe/Profile
example.com/Photos/Index?id=5 could rewrite to example.com/Joe/Photos

etc

您可以在项目中使用urlrewrite。有关更多详细信息,请参见


我认为这种结构类似于
example.com/Users/:id可以重写为example.com/Users/Joe
example.com/Profiles/:id可以重写为example.com/Profiles/Joe
等等。@Dobestar,让用户名像用户名一样友好是否可行?你将如何处理这种情况。。您将如何处理两个同名用户?学习是正确的,因此建议不要在url上使用用户名,而是使用用户名。你可以看到一个例子:在这个问题上进展如何?您需要进一步的帮助吗?如果我想让用户选择他们的个人档案“名称”-在录制时我可以检查其唯一性-我如何设置重写规则在数据库中查找该名称,然后重定向到正确的url,例如,如果有人将其页面别名设置为Bumblebee123,然后url“Users/Bumblebee123”应该检查数据库,找到记录,说它的Id为5,然后重定向到“Users/Index?Id=5”
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }
        // add rewrite
        var rewrite = new RewriteOptions()
         .AddRewrite(@"user/(.*)", "home/user?username=$1", skipRemainingRules: true);
        app.UseRewriter(rewrite);

        app.UseStaticFiles();
        app.UseRouting();
        app.UseAuthorization();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }