[英]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.