编程语言
首页 > 编程语言> > 可以将其他自定义用户数据传递到自定义ASP.NET成员资格提供程序吗?

可以将其他自定义用户数据传递到自定义ASP.NET成员资格提供程序吗?

作者:互联网

我正在实现自定义成员资格提供程序,并且需要实现一些其他字段(例如名字,姓氏,国家/地区等).

我知道我可以从我的提供者返回一个用户对象时扩展MembershipUser类并将其强制转换为该类.我找不到方法以及是否有可能执行的操作是,在用户注册期间创建新用户Membership.CreateUser(…)时,如何将这些自定义属性实际传递给我的提供程序.

有可能吗?如果是,该怎么办?

谢谢

更新

MSDN article

However, this overload will not be called by the Membership class or
controls that rely on the Membership class, such as the
CreateUserWizard control. To call this method from an application,
cast the MembershipProvider instance referenced by the Membership
class as your custom membership provider type, and then call your
CreateUseroverload directly.

在这种情况下,成员资格是对类实例的引用,同时它本身就是类.

都没有

((CustomMembershipProvider)Membership).CreateUser(...);

也不

(CustomMembershipProvider)Membership.CreateUser(...);

作品.

在这种情况下,我应该如何投射?

更新:请参阅我的答案.

解决方法:

我想出了如何进行正确的转换,所以这里是:

自定义会员资格提供者:

public sealed class CustomMembershipProvider : MembershipProvider {...}

自定义会员用户:

public class CustomMembershipUser : MembershipUser {...}

要创建新的自定义用户:

CustomMembershipProvider myProvider = (CustomMembershipProvider)Membership.Provider;
CustomMembershipUser user = (CustomMembershipUser)myProvider.CreateUser(...);

要获取自定义用户:

CustomMembershipProvider myProvider = CustomMembershipProvider)Membership.Provider;
CustomMembershipUser user = (CustomMembershipUser)myProvider.GetUser(...);

本文介绍了如何实现自定义用户:http://msdn.microsoft.com/en-us/library/ms366730.aspx

标签:asp-net,asp-net-membership,c
来源: https://codeday.me/bug/20191101/1986614.html