小编lev*_*jay的帖子

在Swift中使用谓词

我正在为我的第一个应用程序(学习Swift)编写教程:http: //www.appcoda.com/search-bar-tutorial-ios7/

我坚持这部分(Objective-C代码):

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c]         %@", searchText];
    searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何在Swift中为NSPredicate创建一个等价物?

predicate objective-c ios ios7 swift

90
推荐指数
6
解决办法
12万
查看次数

授权角色/策略属性在 .Net Core 3 中不起作用

我没有运气在 .Net Core 3 中获得任何角色或策略属性。我使用带有身份验证的 .Net Core Angular 启动项目开始了我的项目。我认为这与新的 .AddDefault 方法有关,所以我尽可能地简化了它,但它仍然不起作用。

这是我的政策:

services.AddAuthorization(options =>
{
    options.AddPolicy("IsAdmin", policy =>
        policy.RequireClaim("role", "admin"));
});
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

[Authorize(Policy = "IsAdmin")]
[Route("api/[controller]")]
public class AdminController : Controller 
{
    ...
Run Code Online (Sandbox Code Playgroud)

我制作了一个自定义 Profile 服务,将声明添加到令牌中,

var claims = new List<Claim>();

if (await _userManager.IsInRoleAsync(user, "Admin"))
{
    claims.Add(new Claim(JwtClaimTypes.Role, "admin"));
}

context.IssuedClaims.AddRange(claims);
Run Code Online (Sandbox Code Playgroud)

在我的访问令牌中(来自 jwt.io):

在此处输入图片说明

配置服务的其他部分:

services.AddDefaultIdentity<ApplicationUser>()
    .AddRoles<IdentityRole>()
    .AddEntityFrameworkStores<ApplicationDbContext>();

...

services.AddAuthentication()
    .AddIdentityServerJwt();
Run Code Online (Sandbox Code Playgroud)

普通[Authorize]标签与其他控制器上的访问令牌一起工作正常。

当我用访问令牌点击这个控制器时,我得到了一个403响应

我错过了什么阻止它工作?

.net-core asp.net-core identityserver4 asp.net-core-identity .net-core-3.0

6
推荐指数
1
解决办法
4138
查看次数

来自基于策略的授权的自定义 JSON 响应被覆盖

我已经制定了自定义策略要求和处理程序。如果它们不符合要求,它工作正常并返回 403。

我正在尝试返回一个自定义 JSON 对象,其中包含一条关于请求授权失败的原因的消息。这是我正在使用的代码:

if (!_currentUserService.Permissions.CanGetSaleAnalysis)
{
    var mvcContext = context.Resource as Microsoft.AspNet.Mvc.Filters.AuthorizationContext;

    if (mvcContext != null)
    {
        var responseObj = ForbiddenResponseFactory.GetResponse(WorkbookAuthFailure.GetSaleAnalysis);
        mvcContext.Result = new JsonErrorResult(403, responseObj);
    }
}
else
{
    context.Succeed(requirement);
}
Run Code Online (Sandbox Code Playgroud)

似乎 cookie 中间件正在查看质询结果并覆盖响应,因此它不包含我的 JSON 消息......处理这个问题的最佳方法是什么?

c# asp.net-core-mvc .net-core asp.net-core

5
推荐指数
0
解决办法
211
查看次数

Web 部署任务因配置失败:调试

我收到以下错误:

Web 部署任务失败。(使用 Web 管理服务连接时,无法完成指定提供程序(“appHostConfig”)的操作。如果服务器管理员未授权用户执行此操作,则可能会发生这种情况。appHostConfig http://go.microsoft.com/ fwlink/?LinkId=178034了解更多信息,请访问:http://go.microsoft.com/fwlink/ ?LinkId=221672#ERROR_USER_NOT_AUTHORIZED_FOR_DEPLOYMENTPROVIDER。)

当我尝试使用“配置:调试”将项目发布到 Azure 时。如果我使用“配置:发布”,则没有问题。

我尝试删除并重新创建Azure网站并重新安装SDK。

我按照教程设置了 Azure,所以我认为我设置的东西不太可能是错误的。

我用谷歌搜索了一下,发现有人有类似的错误,但他们似乎与调试/发布配置没有关系......

azure

3
推荐指数
1
解决办法
1449
查看次数