- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,
我正在尝试在 Hot Chocolate 中实现基于策略的授权 graphql
服务器。
我在看他们的documentation并引用 Microsoft's guide
我想要达到的目标
我想要那个 HandleRequirementAsync()
每当 User query
时都会被调用正在被调用。
我所做的
User Policy
在 ConfigureServices
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddAuthorization(options =>
{
options.AddPolicy("UserPolicy",
policy => policy.Requirements.Add(new UserRequirement()));
});
services.AddSingleton<Query>();
services.AddSingleton<IAuthorizationHandler, UserAuthorizationHandler>();
services.AddSingleton(typeof(IUserRepo), typeof(UserRepo));
services.AddSingleton(typeof(IBookRepository), typeof(BookRepository));
services.AddGraphQL(
SchemaBuilder.New()
.AddAuthorizeDirectiveType()
.AddType<UserType>()
.AddType<BookType>()
.AddQueryType<Query>());
}
User requirement class
和 handler
public class UserAuthorizationHandler : AuthorizationHandler<UserRequirement, IResolverContext>
{
private IHttpContextAccessor _accessor;
public UserAuthorizationHandler([Service] IHttpContextAccessor accessor)
{
_accessor = accessor;
}
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, UserRequirement requirement,
IResolverContext resource)
{
context.Succeed(requirement);
return Task.CompletedTask;
}
}
public class UserRequirement : IAuthorizationRequirement
{
}
public class UserType
: ObjectType<User>
{
protected override void Configure(IObjectTypeDescriptor<User> descriptor)
{
descriptor.Field(t => t.Name).Type<NonNullType<StringType>>().Authorize("UserPolicy");
descriptor.Field(t => t.Id).Type<NonNullType<StringType>>();
}
}
HandleRequirementAsync
将被调用。这种方法应该总是成功的。但是,当请求用户时。实际发生的是该方法没有被调用,并且请求立即被拒绝,并给出以下响应:
{
"errors": [
{
"message": "The current user is not authorized to access this resource.",
"locations": [
{
"line": 3,
"column": 5
}
],
"path": [
"user",
"name"
],
"extensions": {
"code": "AUTH_NOT_AUTHENTICATED"
}
}
]
}
最佳答案
我只是有一个类似的问题。就我而言,我必须确保在
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseAuthentication();
app.UseAuthorization();
app.UseWebSockets()
.UseGraphQL("/graphql")
.UsePlayground("/graphql")
.UseVoyager("/graphql");
关于asp.net-core - 在 Hot Chocolate 中使用授权时不会调用 HandleRequirementAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61040078/
Code-First 和有什么区别和 Pure Code-First或 Annotation-Based在 Hot Chocolate 中,以及在 GraphQL 模式视角和 Hot Chocolat
使用 Hot Chocolate 时使用 .Net Core 我正在创建这样的方案: public class Startup { public void ConfigureServices(
本文整理了Java中us.ihmc.graphicsDescription.appearance.YoAppearance.Chocolate()方法的一些代码示例,展示了YoAppearance.C
你好, 我正在尝试在 Hot Chocolate 中实现基于策略的授权 graphql服务器。 我在看他们的documentation并引用 Microsoft's guide 我想要达到的目标 我想
我看到可以将数据加载器用于根查询,但也可以将数据加载器用于嵌套连接吗?在下面的示例中,我想为 rooms 使用数据加载器。属性(property)。在底部的示例请求中,将进行三个数据库查询。一个由数据
我正在使用 ASP.NET 5、Hot Chocolate 和 EFCore 5 处理 GraphQL 端点。我有 Entity Framework 实体,我使用 Hot Chocolate 在 Gr
我正在尝试使用 Entity Framework Core 和 Hot Chocolate 创建一个 ASP.NET Core 3.1 应用程序。 应用程序需要支持通过 GraphQL 创建、查询、更
我正在尝试使用 Chocolate Chip UI 创建一个简单的跨平台移动 UI,但在使用 Windows Phone 8 模拟器上的 CSS 时遇到了问题。 根据 http://chocolate
我正在尝试开始在 ASP.NET Core 上使用 Hot Chocolate 库开发 GraphQL API,但我不知道如何为不同的端点使用不同的架构。我知道模式拼接,但这不是我要找的。 我想要实现
就我而言,我想扩展 __EnumValue自省(introspection)类型本质上携带有关枚举值的附加信息。如何向内省(introspection)添加其他字段。 最佳答案 在 Hot Choco
我是一名优秀的程序员,十分优秀!