繁体   English   中英

asp.net Web API中的Angle的承载令牌

[英]Bearer Token for angular in asp.net web api

该场景非常简单,为了简化起见,我使用自定义登录来生成有角度的不记名令牌,我已经在google上进行了研究,但是我想知道为什么在这个问题上没有简单的例子

下面是代码:

 public class IdentityController : ApiController
    {
        IdentityController()
        {
            OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
        }
        public static OAuthBearerAuthenticationOptions OAuthBearerOptions { get; private set; }
        [HttpPost]
        public IHttpActionResult login([FromBody]LoginModel user)
        {
            var username = user.Username.ToLower();
            var password = user.Password;

            if (username == "admin" && password == "1234")
            {
                var identity = new ClaimsIdentity(username);
                identity.AddClaim(new Claim(ClaimTypes.Name, username));
                var principal = new ClaimsPrincipal(identity);
                Thread.CurrentPrincipal = new ClaimsPrincipal(principal);
                if (HttpContext.Current != null)
                {
                    HttpContext.Current.User = principal;
                }

                var ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
                var currentUtc = new SystemClock().UtcNow;
                ticket.Properties.IssuedUtc = currentUtc;
                ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(30));



                FormsAuthentication.SetAuthCookie(username , false);
                var result = new { authenticatonToke = OAuthBearerOptions.AccessTokenFormat.Protect(ticket) };
                return Ok(result);
            }

            else return BadRequest("wrong user name or password");
        }

    }

我收到空引用错误

OAuthBearerOptions.AccessTokenFormat.Protect(ticket)

因为AccessTokenFormat为null

是否有其他可能的解决方法在Web API中生成承载令牌? 我不想使用asp.net身份或其他任何东西..只是管理员和密码是1234。 当我得到不记名令牌时,我想在邮递员中使用它

我强烈建议您使用Identity Server生成令牌,管理用户/客户端等。您还可以在此页面中找到一些经过OpenId认证的解决方案

联合安全是一个重要主题。 内部解决方案可能与第三方有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM