2015-06-21 180 views
0

我有一个asp.net mvc应用程序,其中我使用了Asp.net identity。我实现了这个方法来验证合作者(用户自定义)字段:验证asp.net身份密码

[HttpPost] 
    public bool ValidateCollaborateur(CollaborateurModel item) 
    { 
     if (item.Username == null || item.Email == null) return false; 
     if (UserManager.FindByEmail(item.Email) != null) return false; 

     return ModelState.IsValid; 
    } 

item包含asp.net用户身份的password属性,因此它必须包含

  1. 特殊字符
  2. 下字符
  3. 上字符

我想验证上述item.Password字段。

  1. 我怎样才能完成这个任务?
  2. 是否存在asp.net身份验证密码的方法?

回答

2

构建符合您的条件表达式:

var password = "password_to_test"; 

if (password.Any("[email protected]#$%^&*".Contains) 
    && password.Any(char.IsDigit) 
    && password.Any(char.IsLower) 
    && password.Any(char.IsUpper)) 
    { 
     //valid! 
    } 

使用这种方法,你可以轻松地添加和删除任何标准,而无需返工验证。它还使您能够拆分条件,并以特定原因向用户返回无效密码。

+0

为特殊字符,是完整列表吗?我的意思是'_','-' ........也是特殊字符! –

+1

随时根据需要调整它。这只是我开始制作的一个快速样本。 – Jonesopolis