繁体   English   中英

如何在Web Api中访问用户身份

[英]how to access User Identity in Web Api

我在我的MVC应用程序中使用web Api,我想通过以下代码在我的api中获取用户身份:

User.Identity.Name

但它不起作用,虽然它在控制器等其他地方运行良好!

是否有任何解决方案可以从Web API访问User.Identity.Name?

这是一个常见的混乱。 在MVC中进行身份验证对Web Api中的身份验证状态没有任何作用。 Web Api符合REST标准,除其他外,意味着它的无状态 - 没有会话。

当您在MVC端进行身份验证时,会在用户的浏览器中添加一个使用身份验证令牌的cookie,在应用程序的会话状态中对应一个活动身份验证(我不是在这里谈论Session ,因为auth没有使用 ,但它是还在使用会话 )。 然后,在每个后续请求中,浏览器将此cookie传递回服务器,该服务器验证身份验证令牌并恢复用户“登录”状态。

在Web Api中,没有发生这种情况。 对Web Api的每个请求都必须包含处理该请求所需的所有信息。 什么都不知道。 因此,如果您需要授权Web Api请求,则必须在请求标头中传递身份验证令牌以及请求。 否则,您未经过身份验证,User.Indentity.Name将为null,因为您是匿名的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM