2011-03-17 23 views
0

我遇到了使用membership.createuser方法的问题。我的代码如下,我得到一个空例外的运行时。任何帮助是极大的赞赏。ASP.Net使用Membership.CreateUser方法

Dim username As String = userNameTxt.Text 
    Dim password As String = passwordTxt.Text 
    Dim email As String = emailTxt.Text 
    Dim status As New MembershipCreateStatus 

    Dim blank As String = "" 
    Dim provider As MembershipProvider 
    Dim providerUserKey As New System.Object 

    Dim user As MembershipUser 
    user = provider.CreateUser(username, password, email, blank, blank, True, providerUserKey, status) 

回答

2

你需要具体实施MembershipProvider抽象类 你可以创建自己的或使用现有的。您还需要将其设置在web.config中:

<connectionStrings> 
    <add name="MySqlConnection" connectionString="Data Source=MySqlServer;Initial Catalog=aspnetdb;Integrated Security=SSPI;" /> 
</connectionStrings> 
<system.web> 
... 
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15"> 
    <providers> 
     <clear /> 
     <add 
     name="SqlProvider" 
     type="System.Web.Security.SqlMembershipProvider" 
     connectionStringName="MySqlConnection" 
     applicationName="MyApplication" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="true" 
     requiresUniqueEmail="true" 
     passwordFormat="Hashed" /> 
    </providers> 
    </membership> 

http://msdn.microsoft.com/en-us/library/ff648345.aspx

那么你可以使用Membership.CreateUser,不需要创建实例,它的静态 它也有一个默认的成员资格提供一套属性在web.config中:Membership.Provider

+0

这似乎已经奏效,即时通讯不再有错误,但它也不会将用户添加到会员表中:( – lazell 2011-03-17 11:01:40

+0

很难说哪里是问题你在使用什么提供商? – Robert 2011-03-17 11:17:02

+0

我已将默认提供程序设置为“AspNetSqlMembershipProvider”,然后使用上述所有代码指定该提供程序。 – lazell 2011-03-17 11:19:34

0
Dim provider As MembershipProvider 

然后

provider.CreateUser(.. 

提供商为空,你还没有真正建立一个新的实例

你应该使用 System.Web.Security.Membership.CreateUser

+0

我也尝试昏暗的提供者的MembershipProvider =新的MembershipProvider() ,但我得到一个错误说“新的不能用于声明为'MustInherit'的类” – lazell 2011-03-17 10:39:36

0

使用Membership类的共享方法。您必须配置成员资格提供程序才能在您的web.config文件中使用。

然后它只是:

Membership.CreateUser(username, password, email, blank, blank, True, providerUserKey, status) 

有关如何配置您的会员供应商的详细信息,请参阅msdn Memberhip doc

+0

我将如何去配置web.config文件中的成员资格提供程序? – lazell 2011-03-17 10:52:14

+0

用msdn文档的链接编辑我的文章。这取决于您使用的是哪种类型的会员供应商。有一个可用的SQL和Active Directory。 – 2011-03-17 10:54:19

相关问题