2012-01-10 34 views
1

我想限制與下文提到的性質:: 密碼強度密碼強度:從三個以下四類asp.net會員如何在創建新用戶/更改密碼時限制密碼屬性?

  • 1.Contain字符:

英文大寫字母(A至Z)
英文小寫字符(a到z)
10個基本數字(0〜9)
非字母字符(例如,!,$,#,%)

  • 2. 密碼不能包含用戶的帳戶名


我可以很容易地通過在會員部
在Web.config文件中PasswordStrengthRegularExpression屬性提供的正則表達式實現第一個條件,但問題是與第二一個(密碼不包含用戶的帳戶名稱)我應該做些什麼來實現這一點。

+0

可能重複的地方控制的推移從配置窗口創建新用戶?)](http://stackoverflow.com/questions/8798892/asp-net-membership-where-control-goes-on-creating-new-user-from-config-window) – Eranga 2012-01-10 06:09:23

回答

0

查看我在下面的帖子中鏈接到的頁面。

基本上,你編寫自己的Dataannotation,所以你應該能夠修改它,看看密碼是否包含用戶名,而不是等於用戶名。

Opposite of [compare(" ")] data annotation in .net?

我才意識到你貼這個問題也。

因此,您應該將blogpost中的類名更改爲「CanNotContainAttribute」 之類的內容,然後也會更改爲相同的構造函數名稱。

在IsValid方法中,您應該檢查一個字符串是否包含另一個字符串,即,如果Password包含用戶名,如果將註釋應用於模型文件中的password屬性,則此處的用戶名被稱爲OtherProperty。

然後你做應用註釋Password屬性:

[CanNotContain("UserName")] 
public string Password { get; set; } 

原來的博客文章我指的是:http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp.net-mvc-3-part-2

[ASP.NET的會員(的
+0

我應該在哪裏使用該驗證。即在哪些財產? – RollerCosta 2012-01-10 06:09:25

+0

你的代碼我會工作,如果一個不使用ASP .NET Membership /但在這裏我使用它。所以這樣做沒有結果。 – RollerCosta 2012-01-10 06:17:12

+0

好的,也許別人可以給你一個很好的答案。我的想法是,也許你可以創建一個自定義的會員提供商,並實現你想要的功能。看看:[鏈接] http://www.codeproject.com/KB/aspnet/CustomMembershipProviders.aspx [/鏈接]或谷歌「自定義會員提供商的asp.net」 – Sverker84 2012-01-10 06:27:52