如何在WEB API 2中创建异步验证属性

use*_*797 5 asp.net-mvc asp.net-web-api

我听说可以在ASP.NET WEB API 2中创建异步验证属性,但我没有找到任何示例.我想创建一个像这样的验证类,但异步方式:

public class UserNameAvailable : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        var username = value as string;

        if(username != null)
        {
            return !Database.UserExists(username); // must be async
        }

        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*lla 1

通过验证属性,我假设您指的是类似 ActionFitler 属性的东西。在 Web API 2 中,我们在 ActionFilter 属性中还没有异步版本的方法。但是,在即将发布的版本中,我们将支持此功能。

仍然可以自己创建实现的自定义操作过滤器属性System.Web.Http.Filters.IActionFilter,但我想知道您是否愿意等待下一个版本。如果不能等待,请告诉我,我可以为您尝试一些方法。