代码之家  ›  专栏  ›  技术社区  ›  Ahmer Ali Ahsan

未命中ASP.NET路由,是否返回邮递员404错误?

  •  0
  • Ahmer Ali Ahsan  · 技术社区  · 6 年前

    我有一个ASP.NET Web API路由器,当我导航到正确的路由时,它似乎不会受到攻击。

    这是我的Web API控制器:

    [Route("api/[controller]")]
    [ApiController]
    public class AccountController : ControllerBase
    {
        #region Declarations
        private readonly UserManager<ApplicationUser> _userManager;
        private readonly RoleManager<IdentityRole> _roleManager;
        private readonly ApplicationDbContext _context;
        private readonly IHostingEnvironment _hostingEnvironment;
        #endregion
    
        public AccountController(
            UserManager<ApplicationUser> userManager,
            RoleManager<IdentityRole> roleManager,
            ApplicationDbContext context,
            IHostingEnvironment environment
            )
        {
            _userManager = userManager;
            _roleManager = roleManager;
            _context = context;
            _hostingEnvironment = environment;
        }
    
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "Account", "Controller" };
        }
    
        [HttpPost]
        public async Task<IActionResult> GetToken()
        {
            var client = new DiscoveryClient("http://localhost:15547");
            client.Policy.RequireHttps = false;
            var disco = await client.GetAsync();
            if (disco.IsError)
            {
                return BadRequest(disco.Error);
            }
    
            TokenClient tokenClient = new TokenClient(disco.TokenEndpoint, "ro.angular", "secret");
            TokenResponse tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync("ahmer", "Default@69", "api1 openid");
    
            if (tokenResponse.IsError)
            {
                return BadRequest(tokenResponse.Error);
            }
    
            //var user = _userManager.FindByNameAsync(model.UserName);
    
            var result = await _userManager.FindByNameAsync("ahmer");
    
            return BadRequest("Invalid username or password.");
        }
    }
    

    然而,我得到 http://localhost:15547/api/account/ 路线很好,但是当我试图提出一个发帖请求时 http://localhost:15547/api/account/GetToken 它没有被击中,它显示了来自邮递员的404条信息。我在代码中犯了什么错误。

    输出1

    enter image description here

    输出2

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   Perfect28    6 年前

    [HttpPost]
    public async Task<IActionResult> GetToken()
    

    POST : http://localhost:15547/api/account GetToken

    [HttpPost("gettoken")]
    public async Task<IActionResult> GetToken()
    

    POST http://localhost:15547/api/account/GetToken