我正在使用 Asp 5 开发 Web API,并阅读了一些有关 Web API 的文档,意识到我需要 Bearer 授权。
经过查找,没有发现任何未经授权使用的文档或样本Aspnet.Identity
。我有自己的会员资格,但我不想使用Identity
我应该使用Identity
图书馆?或者有没有办法在我的会员资格中实施授权。
一个小问题:
如果我被迫使用 Identity,我怎样才能将 EntityFramework 更改为类似 dapper 或 ADO.NET 的东西?DBContext
?
已经有一个JWT 承载中间件,您只需要编写一些发行不记名令牌的内容即可。这有点复杂,具体取决于您用作身份存储的内容,并且当您表明它是自定义的东西时,很难就任何方法提供建议。不过,创建 JWT 令牌并不难;
var now = DateTime.UtcNow;
// Creates new keys automatically, you'd want to store these somewhere
var aes = new AesCryptoServiceProvider();
var signingTokenHandler = new JwtSecurityTokenHandler();
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(
new[]
{
new Claim(JwtRegisteredClaimNames.Aud, "YOURWEBSITEURL") }),
TokenIssuerName = "YourWebSite",
Lifetime = new Lifetime(now, now.AddHours(1)),
SigningCredentials = new SigningCredentials(
new InMemorySymmetricSecurityKey(aes.Key),
"http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
"http://www.w3.org/2001/04/xmlenc#sha256")
};
var token = signingTokenHandler.CreateToken(tokenDescriptor);
var tokenAsString = signingTokenHandler.WriteToken(token);
所有授权部分完全不依赖于成员资格,它们可以与任何身份验证中间件一起使用。授权文档中根本没有提及身份。
有一个授权研讨会可用的。您可以在源代码中看到,没有人显示身份,而是动态创建用户主体,然后将它们存储在 cookie 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)