我使用的是新的ASP.NET通用提供商在此Hanselman blog post comment描述:错误当创建用户 - ASP.NET System.Web.Providers
我能得到它的有线起来使用以下验证:
<profile defaultProvider="DefaultProfileProvider" >
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider1" connectionStringName="DefaultConnection" applicationName="/"/>
</providers>
</profile>
<membership defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager defaultProvider="DefaultRoleProvider">
<providers>
<add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</roleManager>
然后我尝试使用下面的代码
创建一个新用户object akey = System.Guid.NewGuid();
MembershipCreateStatus status;
var member = new System.Web.Providers.DefaultMembershipProvider();
member.CreateUser("New User", "password","[email protected]","First Pet","Rover",true,akey,out status)
我得到一个错误,这个堆栈跟踪:
对象未设置在System.Web.Providers.Entities.ModelHelper.CreateEntityConnection对象 的实例(ConnectionStringSettings设置,字符串CSDL, String sdl,String msl) at System.Web.Providers.Entities.ModelHelper.CreateMembershipEntities(ConnectionStringSettings setting) at System.Web.Providers.DefaultMembershipProvider.Membership_CreateUser(String applicationName,String userName,String password,String salt,String email, String passwordQuestion,String passwordAnswer,Boolean isApproved,DateTime(字符串用户名,字符串密码,字符串电子邮件,字符串passwordQuestion,字符串passwordAnswer,布尔isApproved,对象providerUserKey,MembershipCreateStatus & status)3210 createDate,Boolean uniqueEmail,Int32 passwordFormat,Object & providerUserKey) at System.Web.Providers.DefaultMembershipProvider.CreateUser
我认为它必须使数据库连接正常,因为身份验证的作品。 我在做什么错?
只注意到成员的应用程序属性仍设置为空。如果正在从配置中读取它,会预期这是“/”。也许它没有读取配置。
就发现,如果我添加了以下工作原理:
config.Add("connectionStringName", "DefaultConnection");
member.Initialize("DefaultMembershipProvider",config);
但我会一直认为应该把它捡起来从配置文件。
不错的地方。但只是尝试它在配置中设置为True,但仍然无效。 –
只是注意到,成员的应用程序属性仍然设置为空 –
我不知道斜线是否足够(作为给定的输入)的有效字符串。你用字做了吗? –