Rest Asp.Net Web Api控制器中是否有身份验证令牌?

Rest Asp.Net Web Api控制器中是否有身份验证令牌?,rest,authentication,asp.net-web-api,restful-authentication,Rest,Authentication,Asp.net Web Api,Restful Authentication,我将按照本文对正在编写的Web API服务的用户进行身份验证: 这个很好用 总之,我们使用一个自定义操作过滤器,该过滤器应用于所有请求,检查加密的请求头以确定用户是谁 但是,我的控制器操作方法中也有需要知道当前用户是谁的代码。与重复ActionFilter中执行的逻辑不同,我是否有办法在action filter中设置一个变量,并在controller action方法中引用该变量 我还看到有人建议应该使用MessageHandler,而不是actionFilter。这有什么帮助吗 本质上,我

我将按照本文对正在编写的Web API服务的用户进行身份验证:

这个很好用

总之,我们使用一个自定义操作过滤器,该过滤器应用于所有请求,检查加密的请求头以确定用户是谁

但是,我的控制器操作方法中也有需要知道当前用户是谁的代码。与重复ActionFilter中执行的逻辑不同,我是否有办法在action filter中设置一个变量,并在controller action方法中引用该变量

我还看到有人建议应该使用MessageHandler,而不是actionFilter。这有什么帮助吗

本质上,我需要以某种方式在过滤器代码中标记当前用户,并能够在控制器中引用该用户

还是我离这里很远?有更聪明的方法吗? 谢谢

HttpRequestMessage对象有一个属性集合,您可以在其中添加可以在控制器操作中访问的任意状态

如果使用HttpMessageHandler而不是ActionFilter,您将使用相同的方法。

HttpRequestMessage对象有一个属性集合,您可以在其中添加可以在控制器操作中访问的任意状态


如果使用HttpMessageHandler而不是ActionFilter,您将使用相同的方法。

不幸的是,没有内置机制来支持这种安全性


在我们的项目中,我们在Request.Headers集合中使用一个自定义令牌,我们在所有Web Api调用中对该令牌进行往返调用。我们创建了一个对所有非GET请求进行操作的自定义ActionFilter。我们从Request.Headers中提取令牌,并将其与iclaimIdentity中的令牌进行比较,后者可以通过Thread.CurrentPrincipal.Identity访问。遗憾的是,没有内置机制来支持这种安全性


在我们的项目中,我们在Request.Headers集合中使用一个自定义令牌,我们在所有Web Api调用中对该令牌进行往返调用。我们创建了一个对所有非GET请求进行操作的自定义ActionFilter。我们从Request.Headers中提取令牌,并将其与iclaimIdentity中的令牌进行比较,该标识可通过Thread.CurrentPrincipal.Identity访问。创建一个主体并将其存储在Thread.CurrentPrincipal中

然后,您可以使用User.Identity在Web Api控制器中访问它


.

创建主体并将其存储在Thread.CurrentPrincipal中

然后,您可以使用User.Identity在Web Api控制器中访问它


.

是否应该填充更安全的特定对象?感觉这个框架中应该已经有东西了谢谢你的帮助help@ChrisCaThinkStructure的人已经为Web API构建了一系列安全扩展,他们解码了身份验证并创建了一个Princial来存储在Thread.CurrentPrincipal中。请参阅是否应该填充更安全的特定对象?感觉这个框架中应该已经有东西了谢谢你的帮助help@ChrisCaThinkStructure的人已经为Web API构建了一系列安全扩展,他们解码了身份验证并创建了一个Princial来存储在Thread.CurrentPrincipal中。看,这些链接也很有用。这些链接也很有用。我不明白为什么这个问题被标记为非主题。我不明白为什么这个问题被标记为非主题