我需要重寫大量的asp.net會員資料,因爲它不符合我的需求。所以在我的自定義驗證方法中,我檢查他們的密碼是否失敗。我抓住aspnet_membership maxInvalidPasswordAttempts列並添加1。如何從web.config獲取maxInvalidPasswordAttempts?
因此,在我的web.config中,我將它設置爲10.所以我想從web.config中獲取值並與用戶進行比較。我怎樣才能做到這一點?
另外我想當我這樣做比較在if語句我會鎖定用戶?
我需要重寫大量的asp.net會員資料,因爲它不符合我的需求。所以在我的自定義驗證方法中,我檢查他們的密碼是否失敗。我抓住aspnet_membership maxInvalidPasswordAttempts列並添加1。如何從web.config獲取maxInvalidPasswordAttempts?
因此,在我的web.config中,我將它設置爲10.所以我想從web.config中獲取值並與用戶進行比較。我怎樣才能做到這一點?
另外我想當我這樣做比較在if語句我會鎖定用戶?
你應該從你的供應商的初始化方法web.config中得到配置值,如下圖所示:
public override void Initialize(string name, NameValueCollection config)
{
if (config == null)
throw new ArgumentNullException("config");
// Initialize the abstract base class.
base.Initialize(name, config);
pApplicationName = GetConfigValue(config["applicationName"],
System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
pMaxInvalidPasswordAttempts = Convert.ToInt32(GetConfigValue(config["maxInvalidPasswordAttempts"], "5"));
// ...
在您的應用程序,你會引用它作爲Membership.MaxInvalidPasswordAttmpts。
有一個full implementation of a custom MembershipProvider on MSDN。以此爲例,我能夠在幾個小時內實現提供商。
從您的應用程序中,您可以通過Membership類的Providers集合訪問與您的應用程序關聯的所有提供程序。然後,只需使用你感興趣的價值的財產。
Membership.Providers["ProviderName"].MaxInvalidPasswordAttempts
或者你也可以使用下面的得到默認的供應商。
Membership.Provider.MaxInvalidPasswordAttempts
會員資格是在System.Web.Security命名空間,以防萬一。
雖然另一種方法可能是編寫自己的MembershipProvider。根據您將要執行的定製操作的多少,如果您在自己的提供程序中處理所有自定義身份驗證邏輯,則您的控制器將變得更加清潔。
嗯我仍然沒有得到爲什麼我應該讓我自己的自定義會員供應商。就像因爲我正在改變一些東西,我可能只是不修剪會員表,只是作爲我自己的解決方案的角色?就像我必須基本覆蓋會員中的所有內容,爲什麼要自己創建自己的提供者,以便我可以自己創建自己的表格並提供我想要或需要的所有數據,然後僅限於向我提供的內容?就像我喜歡會員的東西很多,但它似乎如果你有很多的定製,他們讓自己的自定義提供商不認爲值得。不妨自己做。 – chobo2 2009-08-19 19:51:23
或者我錯過了一些東西。所以他們不是簡單的方法從web.config中獲取它否則? – chobo2 2009-08-19 19:51:54
我認爲我現在更好地理解你的問題。你沒有寫一個提供者,甚至包裝MS提供者,你只是完全寫了自己的東西。在這種情況下,請忽略我的答案。 創建自定義成員資格提供者仍然是一個好主意。它將與從Visual Studio啓動的ASP.NET配置應用程序一起工作 - 「項目」菜單。他們還允許其他用戶以與所有其他用戶一致的方式使用您的提供商。 如果你有一個非常精簡的功能集,你可能只需要實現25%-50%的方法。 – Chuck 2009-08-19 21:25:47
我一定會在MembershipProvider中檢查ValidateUser()方法; http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.validateuser.aspx – CmdrTallen 2009-08-27 18:32:13