2013-04-30 108 views
0

我是學生寫作項目,我想了解asp.net會員和用戶管理。從登錄控制獲取信息

我看了很多文章,有些很方便,但有些讓我困惑。 看完這個:Examining ASP.NET's Membership, Roles, and Profile

我定義了一個SqlMembershipProvider,它爲我在我的sql服務器中創建了用戶數據庫。 然後我從.net的管理工具中定義了一些用戶,並在我的aspx頁面添加了一個登錄控件。

我的問題是:

  • 哪裏控制保存有關記錄在用戶的信息? 以及我如何訪問它?

  • 我該如何定義自己的登錄功能來驗證用戶,並將其重定向到另一個頁面?

  • 如何在新頁面中使用loginstatus控件顯示 關於不同用戶登錄或匿名的信息?

  • 我想限制某些網頁給某些用戶,並建立基於不同用戶的動態網頁 。是否需要定義角色並檢查用戶角色 ?

  • 還有哪些更多的會員功能可以幫助我管理用戶和角色?

這個決定性的提供者和連接字符串後的配置文件:

<configuration> 
    <connectionStrings> 
     <add name="igroup20_test2ConnectionString" connectionString="Data Source=Media.ruppin.ac.il;Initial Catalog=igroup20_test2;User ID=igroup20;Password=********" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 
     <authentication mode="Forms"/> 
     <compilation debug="true" targetFramework="4.0"/> 
     <membership defaultProvider="CustomizedProvider"> 
      <providers> 
       <add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="igroup20_test2ConnectionString" applicationName="ScottsProject" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"/> 
      </providers> 
     </membership> 
    </system.web> 
</configuration> 

這些都是供應商在MS SQL Server中創建表:

aspnet_Applications 
aspnet_Membership 
aspnet_Paths 
aspnet_PersonalizationAllUsers 
aspnet_PersonalizationPerUser 
aspnet_Profile 
aspnet_Roles 
aspnet_SchemaVersions 
aspnet_Users 
aspnet_UsersInRoles 
aspnet_WebEvent_Events 

我會真正appriciate你的答案:)

+0

你看過'System.Web.Security.Membership'嗎?它可以讓你對aspnet表進行身份驗證,並執行各種安全措施。 http://msdn.microsoft.com/en-us/library/system.web.security.membership.aspx – gwin003 2013-04-30 13:50:10

回答

2

控件在哪裏保存關於用戶登錄信息? 以及我如何訪問它?

你可能意味着在這裏,登錄控件保存憑據信息並讓該用戶登錄並查看安全頁面。所有信息都以加密方式存儲在登錄cookie中。它僅在數據庫上保存最後一次登錄,並在總計數器上保存失敗。

您可以通過閱讀:

var authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName]; 

我想限制某些網頁某些用戶,並builid根據不同用戶 動態頁面。是否需要定義角色並檢查用戶角色 ?

是的,這是你必須做的。

我該如何定義自己的登錄功能來驗證用戶,並將其重定向到另一個頁面?

在這裏你可以醚使用的登錄控制使用的OnLoggingIn="OnLogginIn"登錄過程干擾並返回e.Cancel = true;取消登錄或真讓它繼續。

或者你可以創建一個新證書的cookie,如:How can I manually create a authentication cookie instead of the default method?

更重要的是隸屬函數我可以使用來幫助我管理用戶和 角色?

從您瞭解登錄模塊的數據庫表及其工作方式的那一刻起,您可以使用SQL直接更改它們。

我該如何定義自己的登錄功能來驗證用戶,並將其重定向到另一個頁面?

您可以使用用戶配置文件來存儲額外的參數,然後在您的代碼中使用它們。 Storing user preferences in Web Application

在登錄控件上,OnLoggedIn="OnLoggedIn"是最終調用,您可以讀取參數並將用戶發送到正確的頁面。

+0

謝謝你的模擬答案。通過OnLoggingIn =「OnLogginIn」,您的意思是如果我定義了「OnLogginIn」函數並單擊控件登錄按鈕,它將覆蓋控件的默認登錄功能? – Dvirski 2013-04-30 14:13:14

+0

@Dvirski是的,沒有。它不會覆蓋,它會調用,你可以在那裏做你的重定向。 – Aristos 2013-04-30 14:13:58

+0

所以我的功能將在認證事件後觸發?只有當用戶有效時纔會觸發它? – Dvirski 2013-04-30 14:20:01