修改ASP.NET內建驗證機制的密碼規則,其中預設的密碼必須要英數混合,並且需要一個非英數的特別符號,而且至少要有7位。這樣的密碼才能吃得進去,當然這樣的機制是為了要增加密碼的安全性,避免別人用機器人程式來猜出您的密碼。不過如果內部的系統想要簡單一些,其實也可以透過設定Web.Config的方式來改變他的規則。
預設,在Machine.Config中,有這樣的一段設定
<membership>
<providers>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
其中的這些屬性,參考以下的內容(或者參考MSDN的說明)
如果有需要將該機器上的所有Web專案都修改,可以直接修改這個檔案。不過小喵建議,還是針對個別的來修改比較好。
如果要修改單一站台或者單一Web應用程式,那麼可以在該站台或者該Web應用程式的Web.Config中,加上自己的修改如下:
<membership>
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression="" />
</providers>
</membership>
(假設要修改為最少6個字,不必輸入特殊字元,只需英數混合)
(請注意,一定要加上<remove name="AspNetSqlMembershipProvider" />,否則會有AspNetSqlMembershipProvider已經添加的錯誤訊息!!)