匿名角色和在web api上使用owin oauth识别客户

时间:2017-07-21 05:04:28

标签: authentication asp.net-web-api oauth anonymous bearer-token

我试图找出面对某种情况的最佳做法。

我通过Microsoft Web API实现了OWIN OAUTH 2承载令牌身份验证。这一切都适用于预定义的经过身份验证的"用户"作用。

现在我需要支持"匿名"允许此类用户访问某些API操作的用户角色,同时在声明中获取其唯一生成的guid,与经过身份验证的用户一样(在成功验证后将UserId添加到声明中)。

这将允许我通过每次REST调用的令牌声明获取有关匿名用户的信息。

目前,我已通过在空\非空字符串之间切换来实现此目的: grant_type =密码&安培;用户名=安培;密码=安培; CLIENT_ID = 请求令牌时。

意思是,如果没有提供userName,我指定" custom_anonymous"对用户的角色,否则,我正在对用户进行身份验证,并指定" user"作用。

这是一个好习惯吗?有没有更好的方法来实现这一目标?

谢谢!

1 个答案:

答案 0 :(得分:0)

您无法使用操作标头中的AllowAnonymous或Authorize来装饰您的WebAPI。如果需要授权。

请参考 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api