在ASP.NET核心中使用声明令牌的匿名用户?

cl25kdpy  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(102)

我正在为一个游戏创建一个网站,其目的是让用户能够访问该网站并开始玩游戏,而不必首先创建一个帐户。游戏是通过浏览器连接到SignalR并与之通信来玩的。
我希望能够使用Context.User.Claims名称标识符来永久地识别用户,即使他们是匿名的。服务器或浏览器会自动创建一个GUID/UUID,这将是他们的用户名,在本地存储或cookie中的浏览器会话中永久保存。
显然,用户可以清除此存储/cookie并获得一个新的匿名用户ID -这很好,而且不存在安全问题。
但是,是否有一种既定的方法可以使用ASP.NET核心标识来实现这一点呢?这似乎都是基于这样一种假设,即用户将显式地登录以获得他们的声明令牌。是否有一种方法可以将声明与这种半匿名用户概念一起使用呢?

fykwrbwg

fykwrbwg1#

最简单的方法是使用cookie。
如果您的方案不接受此操作,则可以在服务器端(从注册终结点)颁发与用户会话关联的令牌。您可以在客户端保留颁发的令牌,以便在后续调用服务器时作为授权标头发送。
您可以使用Microsoft.AspNetCore.Authentication.JwtBearer等库创建令牌并将其与声明一起放置
您还可以验证令牌并在每个请求中读取其声明,然后填充Claims集合。

相关问题