我正在为我的ASP.NET应用程序使用Oracle.Web.Security.OracleMembershipProvider
MembershipProvider。我的登录表单有用户名,密码和电子邮件地址。
登录后,我可以使用User.Identity.Name
访问用户名。
答案 0 :(得分:1)
您可以使用以下任一方式创建用户对象:
[C#]
System.Web.Security.Membership.GetUser("username");
System.Web.Security.Membership.GetUserNameByEmail("email");
此方法返回MembershipUser
个对象。使用此对象,您可以检索电子邮件和其他属性。
我不确定您对不同类型的用户的意思,但您可以使用角色。
您可以使用ProviderUserKey
的{{1}}属性将UserId设为MembershipUser
答案 1 :(得分:0)
在身份验证之后在线程上设置的Principal本质上是通用的,并且不包含这些细节。一种方法是通过添加新属性来扩展IPrincipal和IIdentity接口,并在认证阶段设置它们。但这需要修改认证\授权机制,这不是理想的方法 另一种方法是在问题域中创建自定义用户类,并在用户通过身份验证时加载其数据。此User类可以包含任何所需的属性和任何相关实体。这将是自定义代码,不会使用ASP.Net安全基础结构。