webapi 串数据了,有人帮我排除吗?(有$)

lang_csdn 2020-06-02 10:21:24
情况是这样的。

后面使用oauth 身份认证是 client_credentials 前端是小程序


每一个小程序用户登录后会获取一个token,然后请求其它api带上这个token

现在发现,有时请求api数据会是另一个用户的。


如:

A 登录后,在发入token 时,会记录以下信息


Public Overrides Function GrantClientCredentials(context As OAuthGrantClientCredentialsContext) As Task

Dim oAuthIdentity = New ClaimsIdentity(context.Options.AuthenticationType)
oAuthIdentity.AddClaim(New Claim("code", Me.logininfo.code))



Dim ticket = New AuthenticationTicket(oAuthIdentity, New AuthenticationProperties())
context.Validated(ticket)

context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", {"*"})

Return MyBase.GrantClientCredentials(context)
End Function

然后A请求其它api时,会 调用 Dim ClaimsPrincipal As ClaimsPrincipal = HttpContext.Current.User 来获取code的值。但是有时A获取的就是另一个用户的值了。



...全文
115 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dmankill 2020-06-02
  • 打赏
  • 举报
回复
是不是用了全局静态变量/方法,并且还没加锁
正怒月神 2020-06-02
  • 打赏
  • 举报
回复
引用 2 楼 lang_csdn 的回复:
[quote=引用 1 楼 正怒月神 的回复:] 调试两个用户获取的token,是不同的吗?
只是偶尔是这样,我想问一下,我的写法有没有问题。[/quote] 那就肯定有问题了。偶尔只是说明你并发量不大,但是肯定使用到了共享资源导致的。 你把Return MyBase.GrantClientCredentials(context)拿出来看看,是怎么写的。 看一下整个的class
lang_csdn 2020-06-02
  • 打赏
  • 举报
回复
引用 1 楼 正怒月神 的回复:
调试两个用户获取的token,是不同的吗?
只是偶尔是这样,我想问一下,我的写法有没有问题。
正怒月神 2020-06-02
  • 打赏
  • 举报
回复
调试两个用户获取的token,是不同的吗?
lang_csdn 2020-06-02
  • 打赏
  • 举报
回复
引用 4 楼 dmankill 的回复:
是不是用了全局静态变量/方法,并且还没加锁
Public Class Helper Shared Function GetLoginInfo() As LoginInfo Dim l As New LoginInfo If Not HttpContext.Current Is Nothing Then Dim ClaimsPrincipal As ClaimsPrincipal = HttpContext.Current.User For Each c In ClaimsPrincipal.Claims Select Case c.Type Case "Role" l.Role = c.Value Case "ID" l.ID = CInt(c.Value) Case "LoginName" l.LoginName = c.Value Case "NickName" l.NickName = c.Value Case "clientno" l.clientno = c.Value Case "code" l.code = c.Value Case "db" l.db = c.Value Case "restfulurl" l.restfulurl = c.Value Case "ver" l.ver = c.Value End Select Next Else End If Return l End Function 这个是静态方法,会不会是这个造成的。 End Class

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧