C# ASP.net 5 Web API 2密码验证

C# ASP.net 5 Web API 2密码验证,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我想在ASP.net 5中实现一个非常简单的身份验证 您需要验证的只是一个密码。没有用户管理器或者类似的东西 登录操作看起来如何,或者我必须如何继续才能实现 编辑: 密码是全局密码,不是针对每个用户的。您可以尝试实现最简单的方法: 检查api控制器操作中的密码 设置一些生成的或预定义的cookie,或使用令牌返回响应 创建自定义ActionFilter并检查您的Cookie或令牌(在查询字符串或http请求头中)是否有授权 我还没有测试过,所以这只是一个起点。 您需要实现一个自定义Authent

我想在ASP.net 5中实现一个非常简单的身份验证

您需要验证的只是一个密码。没有用户管理器或者类似的东西

登录操作看起来如何,或者我必须如何继续才能实现

编辑:
密码是全局密码,不是针对每个用户的。

您可以尝试实现最简单的方法:

  • 检查api控制器操作中的密码
  • 设置一些生成的或预定义的cookie,或使用令牌返回响应
  • 创建自定义ActionFilter并检查您的Cookie或令牌(在查询字符串或http请求头中)是否有
    授权

  • 我还没有测试过,所以这只是一个起点。 您需要实现一个自定义AuthenticationHandler

    比如:

    class PasswordAuthenticationHandler : AuthenticationHandler<PasswordAuthenticationOptions>
    {
        public PasswordAuthenticationHandler (PasswordAuthenticationOptionsoptions)
        {
            //set fields needed from options        
        }
    
        protected override async Task<AuthenticationTicket> AuthenticateCoreAsync()
        {
            //get the password out of the Request and create claims collection
            ...
            var claimsId = new ClaimsIdentity(claims, Options.AuthenticationType);
            return new AuthenticationTicket(claimsId, new AuthenticationProperties());// can use AuthenticationProperties to set additional propertiues needed in ticket
        }
    
        // override ApplyResponseChallengeAsync
    
     }
    
    类密码AuthenticationHandler:AuthenticationHandler
    {
    公共PasswordAuthenticationHandler(PasswordAuthenticationOptions选项)
    {
    //设置选项中所需的字段
    }
    受保护的覆盖异步任务

    public class PasswordAuthenticationMiddleware : AuthenticationMiddleware<PasswordAuthenticationOptions>
    {
        public delegate Task<IEnumerable<Claim>> CredentialValidationFunction(string id, string secret);
    
        public PasswordAuthenticationMiddleware(OwinMiddleware next, PasswordAuthenticationOptions options)
            : base(next, options)
        {}
    
        protected override AuthenticationHandler<PasswordAuthenticationOptions> CreateHandler()
        {
            return new PasswordAuthenticationHandler(Options);
        }
    }
    
    app.Use<PasswordAuthenticationMiddleware>(options);