从MembershipProvider获取用户属性

时间:2011-12-06 04:49:53

标签: asp.net oracle webforms

我正在为我的ASP.NET应用程序使用Oracle.Web.Security.OracleMembershipProvider MembershipProvider。我的登录表单有用户名,密码和电子邮件地址。

登录后,我可以使用User.Identity.Name访问用户名。

  1. 如何检索电子邮件地址?我在User对象中找不到这个。
  2. 如何更改有两种不同类型的用户(具有写访问权限和具有读访问权限的用户)。
  3. 我需要使用userid作为外键创建另一个表。如何检索它以便我可以作为外键输入其他表。

2 个答案:

答案 0 :(得分:1)

您可以使用以下任一方式创建用户对象:

[C#]
System.Web.Security.Membership.GetUser("username");
System.Web.Security.Membership.GetUserNameByEmail("email");
  1. 此方法返回MembershipUser个对象。使用此对象,您可以检索电子邮件和其他属性。

  2. 我不确定您对不同类型的用户的意思,但您可以使用角色。

  3. 您可以使用ProviderUserKey的{​​{1}}属性将UserId设为MembershipUser

答案 1 :(得分:0)

在身份验证之后在线程上设置的Principal本质上是通用的,并且不包含这些细节。一种方法是通过添加新属性来扩展IPrincipal和IIdentity接口,并在认证阶段设置它们。但这需要修改认证\授权机制,这不是理想的方法 另一种方法是在问题域中创建自定义用户类,并在用户通过身份验证时加载其数据。此User类可以包含任何所需的属性和任何相关实体。这将是自定义代码,不会使用ASP.Net安全基础结构。