當前在我的應用程序中,使用ASP.Net成員資格提供程序和ASP.Net默認登錄頁面驗證用戶僅包含用戶名和密碼。這對這兩個領域工作正常。但根據我當前的要求,需要在ASP.Net登錄頁面中將額外的字段「公司」顯示爲下拉列表,並使用ASP.NET成員資格提供程序驗證三個公司,用戶名和密碼。這是否可能,使用ASP.Net成員資格提供程序自定義ASP.Net登錄頁面,並添加額外字段?你可以給我一些想法,我怎麼可以接近?ASP.NET成員資格 - 爲ASP.Net添加額外字段登錄頁面
1
A
回答
1
成員資格提供者的ValidateUser方法只接受兩個參數 - 用戶名和密碼。即使你重寫它,也不能傳遞三個參數。
ValidateUser(string username, string password)
基本上,您不能使用登錄控件來驗證用戶。相反,你想自己驗證用戶。下面是一個示例代碼 -
注:我在演示目的登錄控制去掉代碼。
<asp:Login ID="LoginUser" runat="server" OnAuthenticate="LoginUser_Authenticate">
<LayoutTemplate>
<asp:TextBox ID="UserName" runat="server" />
<asp:TextBox ID="Password" runat="server" TextMode="Password" />
<asp:DropDownList ID="CompanyDropDownList" runat="server">
<asp:ListItem Text="One" Value="1" />
<asp:ListItem Text="Two" Value="2" />
</asp:DropDownList>
<asp:Button ID="LoginButton" runat="server" CommandName="Login"
Text="Log In" ValidationGroup="LoginUserValidationGroup" />
</LayoutTemplate>
</asp:Login>
protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
var companyName = LoginUser.FindControl("CompanyDropDownList")
as DropDownList;
if(MyValidateUser(LoginUser.UserName, LoginUser.Password,
companyName.SelectedValue))
{
FormsAuthentication.SetAuthCookie(LoginUser.UserName, false);
// Do something
}
}
請確保您使用新ASP.NET Universal Providers
0
您可以使用Profile Provider進行此操作。
或者,您可以創建自己的表來存儲其他用戶相關信息。這是一個更復雜的工作,因爲您正在創建自己的表並創建代碼以從這些表中獲取數據並將數據保存到這些表中,但是我發現使用這種方式的自定義表可以提供更大的靈活性和更好的可維護性(特別是默認的配置文件提供程序SqlProfileProvider,它以低效,非規範化的方式存儲配置文件數據)。
看一下這個教程,你可以在這裏找到這個過程的步驟:存儲其他用戶信息。
相關問題
- 1. 如何使用ASP.Net成員資格提供程序添加額外的字段?
- 2. 在asp.net中爲登錄功能添加額外的字段
- 3. ASP.Net成員資格附加字段
- 4. 如何在Asp.net成員資格中添加新字段?
- 5. ASP.NET成員資格
- 6. Asp.net成員資格
- 7. ASP.net - 成員資格
- 8. 額外資格成員GCC
- 9. ASP.NET成員資格:如何將用戶設置爲已登錄
- 10. 記錄每個用戶的登錄/註銷ASP.Net成員資格
- 11. ASP.NET登錄頁面
- 12. asp.net登錄頁面
- 13. asp.net登錄頁面
- 14. 爲什麼成員資格API將額外記錄添加到aspnet_Applications表中?
- 15. 登錄頁面爲asp.net頁面
- 16. ASP.Net成員登錄問題
- 17. Asp.Net成員資格錯誤
- 18. ASP.Net成員資格配置
- 19. ASP.Net MVC成員資格
- 20. 填寫asp.net成員資格
- 21. 成員資格和asp.net MVC
- 22. ASP.NET成員資格表
- 23. EF和ASP.NET成員資格
- 24. ASP.NET成員資格和EF
- 25. ASP.NET成員資格 - 一次登錄到兩個地方
- 26. 使用ASP.NET成員資格提供者(沒有登錄邏輯?)
- 27. ASP.NET登錄/成員資格 - 如何註銷?
- 28. ASP.NET成員資格:登錄控件源代碼
- 29. asp.net使用loginview和登錄狀態沒有成員資格
- 30. 如何在asp.net mvc中添加額外的字段來註冊頁面?
謝謝...我已經嘗試過這種方式,但面臨CompanyDropDownList存在一些問題,通過使用Login.FIndControl方法檢索選定的下拉項目。而且我的要求超出了此功能,切換到公司數據庫並驗證用戶。所以我想用自定義登錄頁面實現Forms身份驗證並切換到公司數據庫,最後驗證用戶並允許訪問授權頁面。任何如何謝謝你的建議,這有助於學習新事物。 – venkat