2011-12-06 54 views
0

屬性我使用Oracle.Web.Security.OracleMembershipProvider的MembershipProvider我的ASP.NET應用程序。我的登錄表單有用戶名,密碼和電子郵件地址。獲取用戶來自的MembershipProvider

登錄後,我可以User.Identity.Name訪問用戶名。

  1. 我怎樣才能檢索到的電子郵件地址?我無法在User對象中找到它。
  2. 我怎樣才能改變有兩種不同類型的用戶(那些以寫訪問,並與那些讀訪問)。
  3. 我需要創建一個用戶ID爲外鍵的另一個表。我該如何檢索,以便能夠將其他表格作爲外鍵輸入。

回答

1

您可以使用創建一個用戶對象:

[C#] 
System.Web.Security.Membership.GetUser("username"); 
System.Web.Security.Membership.GetUserNameByEmail("email"); 
  1. 該方法返回一個MembershipUser對象。有了這個對象,你可以檢索電子郵件和其他屬性。

  2. 我不知道你所說的不同類型的用戶的意思,但你可以通過用戶的角色。

  3. 您可以使用MembershipUserProviderUserKey屬性來獲取用戶ID爲System.Guid

0

驗證後線程上的主體在本質上是泛型的,並且不包含這些細節。一種方法是通過添加新屬性來擴展IPrincipal和IIdentity接口,並在身份驗證階段對其進行設置。但是這需要修改認證\授權機制,這不是理想的方法。
另一種方法可以在你的問題域創建自定義的用戶類別,並加載它的數據,當用戶通過驗證。此用戶類可以包含任何所需的屬性和任何相關實體。這將是自定義代碼,不會使用ASP.Net安全基礎結構。

相關問題