我有一个.Net MVC应用程序,我试图使用电子邮件地址作为用户名。我实现了this article中的逻辑,其中用户名被屏蔽为电子邮件。但是,当我试着打电话时
private readonly MembershipProvider _provider;
MembershipCreateStatus status;
_provider.CreateUser(userName, password, email, null, null, true, false, out status);
用户名为“email@email.com”,状态始终返回为 InvalidProviderUserKey 。如果我使用标准用户名(没有@),它可以正常工作。我试图寻找解决方案,但我真的可以在任何地方找到InvalidProviderUserKey的解释。
我想知道是否有人之前遇到过此问题,或者可能能够解释为什么这种情况会返回此特定状态。提前感谢您的帮助。
更新
我使用Guid.NewGuid作为ProviderUserKey并且它有效。
_provider.CreateUser(userName, password, email,null, null, true, Guid.NewGuid(), out status);
感谢Daniel A. White的帮助。您提供的文章链接是我需要理解的内容。
答案 0 :(得分:2)
确保将某些内容传递给providerUserKey
,而不仅仅是false
。
providerUserKey
输入:System.Object
来自的唯一标识符 用户的会员数据源。
http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.createuser.aspx