2016-10-04 58 views
4

這裏是我的情況。在System.Web.Security.MembershipProvider(EPiServer)中的密碼策略驗證Chage錯誤消息

我使用EPiServer 9,我已經配置如下一個SqlServerMembershipProvider:

<add name="SqlServerMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
        connectionStringName="EPiServerXYZ" 
        enablePasswordRetrieval="false" 
        enablePasswordReset="true" 
        requiresQuestionAndAnswer="false" 
        requiresUniqueEmail="false" 
        maxInvalidPasswordAttempts="5" 
        minRequiredPasswordLength="8" 
        minRequiredNonalphanumericCharacters="1" 
        passwordAttemptWindow="10" 
        applicationName="/" 
        passwordStrengthRegularExpression="^.*(?=.{8,})(?=.*\d)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[^\w\d\s]).*$" /> 

一切工作正常,在驗證和不同的場景。

我們的問題是,由成員資格提供所顯示的錯誤消息被創建通過使用配置和它結束了給而不是用戶友好的消息,例如:

  • 「無效密碼,最小長度:8,最小非字母數字字符:1'
  • ''newPassword'中的非字母數字字符需要大於或等於'1'。參數名稱:newPassword'
  • '參數'newPassword'與配置文件中指定的正則表達式不匹配。參數名:NEWPASSWORD」

error message password validation when creating user in episerver

我很想設置自定義錯誤消息,這確實說明了用戶所有的,我們在這是用來驗證密碼的正則表達式的要求。

目前我能想到的唯一方法是通過實現/擴展我們正在使用的當前提供者來設置自定義錯誤消息,當驗證出現問題時,但我想可能會有另一個更好/更簡單的這樣做的方式。

提前致謝!

+1

自定義可能是最好的路線,除了重寫ValidateUser()之外,您可能不需要做太多的事情。如果無效,那麼只管理您的自定義消息。試試這個初學者:http://stackoverflow.com/a/12094556/2779990 –

回答

0

我同意您的自定義錯誤消息的想法。

考慮顯示帶有UI錯誤消息的div,直到檢測到輸入錯誤纔會隱藏UI。這可以位於輸入文本框的右側或提交按鈕的上方。顯示的錯誤消息將取決於檢測到的輸入錯誤。

對於任何密碼/確認密碼輸入錯誤,定義一個通用密碼錯誤消息,然後列出您的問題中列出的密碼輸入要求。

可以爲用戶名和電子郵件地址輸入錯誤添加其他錯誤消息。

+1

截圖是一個OOTB Episerver功能,並且該部分的用戶界面不容易定製。 :/所以我認爲覆蓋默認錯誤信息的自定義實現是最簡單的方法。 –

+0

好點,因此爲Episerver創建新的錯誤消息分區可能不可行。我希望Episerver能夠顯示自定義錯誤消息,但我不知道這是如此。 – JohnH