C#.Net Core API授权路由与Identity Server 4

时间:2017-08-03 12:15:40

标签: c# .net api .net-core identityserver4

我有一个使用Identity Server 4并且注册和登录路由有效的API。但是,我使用[Authorized]保护的内容为404提供了或不使用授权标头。如果我从路线中移除[Authorized],它就会被击中。可能是什么问题?

这是控制器:

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;

namespace Security.API.Controllers
{
    [Route("[controller]")]
    public class AccountController : Controller
    {
        private readonly IAccountService accountService;

        public AccountController(IAccountService accountService)
        {
            this.accountService = accountService;
        }

        [HttpGet("")]
        public string Get()
        {
            return "You are seeing this because account controller is working fine!";
        }

        [Authorize]
        [HttpGet("getauthorized")]
        public string GetAuthorized()
        {
            return "This is authorized okay.";
        }
...

第一条路线被击中,第二条路线没有

1 个答案:

答案 0 :(得分:2)

您需要在依赖方上放置[授权]属性,这意味着您的网络应用程序正在调用网络api。身份服务器通过令牌身份验证来保护您的Web apis。

  • 将[授权]放在客户端应用程序(RP)
  • 它将被重定向到auth server login / register
  • 成功登录后,将重定向到客户端应用
  • 此处获取访问令牌并致电您的api