小编Kes*_*Kes的帖子

将 swagger 文档拆分为单独的集合

我正在将 swagger 与 .net core 一起使用,我想知道是否可以拆分 2 组或多组可通过不同 url 访问的 swagger 文档。这里不讨论版本控制。

举个例子,如果我有一个用于移动应用程序、网络应用程序的 API,还有一个用于我的客户的 API。我想将它们分别分开,并仅添加对移动和 Web api 的授权,而不是对客户端的授权。我有这个想法将各自的 api 分离到区域,但我仍然不知道如何将其拆分为 swagger 文档。

我知道可以获得相同结果的唯一方法是将其拆分为单独的项目。

任何其他解决此问题的想法都非常受欢迎。谢谢。

swagger swagger-ui .net-core

8
推荐指数
1
解决办法
5186
查看次数

为 .NET Core Identity 2.1 覆盖 UserValidator.cs 中的 ValidateAsync

我正在自定义用户名的验证以允许相同的用户名(非唯一)。这是带有附加字段“已删除”作为对身份用户的软删除。因此,自定义涉及更改当前验证以检查用户名是否已存在,并且已删除是否为 false 以仅触发 DuplicateUserName 错误。

我所做的是创建一个 CustomUserValidator 类,并覆盖 UserValidator.cs 中的 ValidateAsync 方法以及 ValidateUserName 方法。下面是代码:

自定义用户验证器.cs

public class CustomUserValidator<TUser> : UserValidator<TUser>
    where TUser : ApplicationUser
{
    public override async Task<IdentityResult> ValidateAsync(UserManager<TUser> manager, TUser user)
    {
        if (manager == null)
        {
            throw new ArgumentNullException(nameof(manager));
        }
        if (user == null)
        {
            throw new ArgumentNullException(nameof(user));
        }
        var errors = new List<IdentityError>();
        await ValidateUserName(manager, user, errors);
        if (manager.Options.User.RequireUniqueEmail)
        {
            await ValidateEmail(manager, user, errors);
        }
        return errors.Count > 0 ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success;
    }

    private async …
Run Code Online (Sandbox Code Playgroud)

validation asp.net-identity asp.net-core-mvc

4
推荐指数
1
解决办法
2185
查看次数

.NET Core 2.1覆盖自动模型验证

在最新的.NET Core 2.1中,引入了模型状态验证的自动验证(https://blogs.msdn.microsoft.com/webdev/2018/02/02/asp-net-core-2-1-roadmap /#mvc).

以前我可以通过以下代码覆盖验证错误响应:

public class ApiValidateModelAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        if (!context.ModelState.IsValid)
        {
            context.Result = new BadRequestObjectResult(new context.ModelState);
        }

    base.OnActionExecuting(context);
}
Run Code Online (Sandbox Code Playgroud)

但现在它已经不再适用了.无需输入覆盖方法即可响应验证错误.

有人有任何线索吗?谢谢.

c# validation .net-core-2.1

4
推荐指数
2
解决办法
2915
查看次数