具有授权属性的 HotChocolate,如何获取当前登录的用户?
HotChocolate with Authorize attribute, how to get currently logged on user?
我使用 HotChocolate 和 HotChocolate.AspNetCore.Authorization
中的 [Authorize]
属性进行了 GraphQL 突变,以在我的 GraphQL 端点上强制执行授权。
这很好用,我只能在以管理员身份登录后才能调用突变...
...但现在我想检索已授权的用户,但我似乎找不到办法。
[ExtendObjectType(Name = "Mutation")]
[Authorize(Roles = new[] { "Administrators" })]
public class MyMutations
{
public bool SomeMethod()
{
// In a regular Web API controller, you can do User.Identity.Name to fetch the user name of the current user. What is the equivalent in Hot Chocolate?
var userName = "";
return false;
}
}
有什么想法吗?
HotChocolate 使用 asp.net 核心身份验证机制,因此您可以使用 HttpContext 获取用户。
[ExtendObjectType(Name = "Mutation")]
[Authorize(Roles = new[] { "Administrators" })]
public class MyMutations
{
public bool SomeMethod([Service] IHttpContextAccessor contextAccessor)
{
var user = contextAccessor.HttpContext.User; // <-> There is your user
// In a regular Web API controller, you can do User.Identity.Name to fetch the user name of the current user. What is the equivalent in Hot Chocolate?
var userName = "";
return false;
}
}
我使用 HotChocolate 和 HotChocolate.AspNetCore.Authorization
中的 [Authorize]
属性进行了 GraphQL 突变,以在我的 GraphQL 端点上强制执行授权。
这很好用,我只能在以管理员身份登录后才能调用突变...
...但现在我想检索已授权的用户,但我似乎找不到办法。
[ExtendObjectType(Name = "Mutation")]
[Authorize(Roles = new[] { "Administrators" })]
public class MyMutations
{
public bool SomeMethod()
{
// In a regular Web API controller, you can do User.Identity.Name to fetch the user name of the current user. What is the equivalent in Hot Chocolate?
var userName = "";
return false;
}
}
有什么想法吗?
HotChocolate 使用 asp.net 核心身份验证机制,因此您可以使用 HttpContext 获取用户。
[ExtendObjectType(Name = "Mutation")]
[Authorize(Roles = new[] { "Administrators" })]
public class MyMutations
{
public bool SomeMethod([Service] IHttpContextAccessor contextAccessor)
{
var user = contextAccessor.HttpContext.User; // <-> There is your user
// In a regular Web API controller, you can do User.Identity.Name to fetch the user name of the current user. What is the equivalent in Hot Chocolate?
var userName = "";
return false;
}
}