如何获取对API进行调用的用户的UserName?

罗特姆·瓦隆(Rotem Varon)

技术:ASP.Net Web API 2身份验证。

IDE:我在Visual Studio 2013中使用SPA模板。

故事:我添加了一个带有一个Get方法的控制器(请参见代码)并执行了一个测试,以便打印“ System.Threading.Thread.CurrentPrincipal.Identity.Name”。最终的游戏是找到调用该API的客户端的标识。

问题:为什么身份显示为空?它与调用在不同线程上进行服务的事实有关吗?令牌(客户端在登录时收到的令牌)是否属于请求的一部分并用于身份验证?

为了清楚起见,我尝试将其简短化,因此,如果您需要更多信息,请告诉我。

public class abcController : ApiController
{
    // GET api/abc
    public IEnumerable<string> Get()
    {
        return new string[] 
        { System.Threading.Thread.CurrentPrincipal.Identity.Name.ToString(), 
          "My Try" 
        };
    }

好的,我找到了解决方法(不是解决方案)。基本上,删除此行“ config.SuppressDefaultHostAuthentication();”。http://forums.asp.net/p/1944393/5594350.aspx?Re+Web+API+2+how+do+I+find+the+ident+of+an+经过​​身份验证的用户+


杰森·海利(Jason Haley)

在javascript方面,在webapi调用中,您需要确保在app.datamodel.js中调用其getSecurityHeaders函数,如下所示(当然,他们已经登录):

    var getabc = function () {
        return $.ajax("api/abc", {
            type: "GET",
            headers: getSecurityHeaders()
        });
    };

如果您不调用其getSecurityHeaders()函数,则Identity将为null。

为了完整起见,下面是该函数:

function getSecurityHeaders() {
        var accessToken = sessionStorage["accessToken"] || localStorage["accessToken"];

        if (accessToken) {
            return { "Authorization": "Bearer " + accessToken };
        }

        return {};
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据用户输入进行API调用?

API调用后如何与Firebase用户进行交互?

如何获取实体 ID 以使用 LUIS API 进行调用?

如何进行API调用

尝试进行API调用以获取令牌

进行api调用以获取json数据

Nodejs Express,调用我的API时如何对网站的每个用户进行速率限制?

如何在api调用中使用令牌对用户进行身份验证?

Xamarin PCL-基于用户输入进行API调用,如何抑制请求?

在流星应用中,如何代表用户进行经过身份验证的Google API调用?

如何使用API调用在Laravel上对Auth :: check()用户进行身份验证

如何在 GraphQL 中通过 userName 获取用户?

在Web Api调用期间如何获取用户上下文?

如何使用一个 Facebook API 调用获取用户帐户(页面)描述?

Gmail API:如何简单地对用户进行身份验证并获取其邮件列表?

Github API:如何获取已对存储库加注星标并对其进行克隆的用户列表

如何在Next.js中进行依赖获取API调用

如何进行MediaWiki Api调用以从坐标获取缩略图和标题

反应api调用。我能够获取数据,但是如何在前端进行填充

如何让用户代理调用瓶状API

如何通过用户输入更改API调用

处理用户输入以做出响应以进行API调用

如何使用Swift进行API调用?

如何使用@GET方法进行API调用?

如何使用流星进行API调用

如何按顺序进行多个 API 调用

如何从Java进行GitHub GraphQL API调用

如何对Amazon Alexa进行REST API调用

如何对所有 API 调用进行分组