C# 如何获取绝对URL';ASP.NET Core 2.0中的路径?

C# 如何获取绝对URL';ASP.NET Core 2.0中的路径?,c#,asp.net-core,httpcontext,actionfilterattribute,C#,Asp.net Core,Httpcontext,Actionfilterattribute,我正在开发一个应用程序ASP.NET Core 2.0。我有一个属性类来验证我的每个api请求,它继承了ActionFilterAttribute类。但问题是我没有得到所需的请求url,给定的url带有参数,我只需要像/api/values/get这样的绝对url,而不是像/api/values/get/1。如果你看到我下面的代码,我想你会明白的 Api [Route("api/[controller]")] public class ValuesController : Controller

我正在开发一个应用程序ASP.NET Core 2.0。我有一个属性类来验证我的每个api请求,它继承了ActionFilterAttribute类。但问题是我没有得到所需的请求url,给定的url带有参数,我只需要像
/api/values/get
这样的绝对url,而不是像
/api/values/get/1
。如果你看到我下面的代码,我想你会明白的

Api

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("get/{id}"),AuthorizationRequiredAttribute]
    public IEnumerable<string> Get(int id)
    {
        return id;
    }
}

查看
Request.GetDisplayURL
。此方法将提供完整的URL。请注意,该参数是从客户端启动的URL的一部分,因此将显示该参数。您需要手动删除它,或者更改URL方案以使用查询字符串。

查看
请求。GetDisplayURL
。此方法将提供完整的URL。请注意,该参数是从客户端启动的URL的一部分,因此将显示该参数。您需要手动删除它,或者更改URL方案以使用查询字符串。

.Contains()方法帮助我使用给定的操作URL实现逻辑

public class AuthorizationRequiredAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var url=context.HttpContext.Request.Path.ToString()
        if(url.Contains("/api/values/get/1"))
        {
             //do something
        }
    }
}
.Contains()方法帮助我使用给定的操作url实现逻辑

public class AuthorizationRequiredAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        var url=context.HttpContext.Request.Path.ToString()
        if(url.Contains("/api/values/get/1"))
        {
             //do something
        }
    }
}

请注意,绝对URL具有
protocol://domain/path
格式化,并且您确实希望只检查路径的一部分。所以最好编辑你的问题。谢谢@Set,edited注意绝对URL有
protocol://domain/path
格式化,并且您确实希望只检查路径的一部分。所以最好编辑你的问题。谢谢@Set,编辑