1

我有一个 .Net MVC 应用程序,我正在尝试使用电子邮件地址作为用户名。我实现了本文中的逻辑,其中用户名被屏蔽为电子邮件。但是,当我尝试打电话时

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 的帮助。您提供的文章链接是我需要理解的。

4

1 回答 1

2

确保你传递了一些东西providerUserKey,而不仅仅是false.

providerUserKey类型:System.Object 来自用户成员资格数据源的唯一标识符。

http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.createuser.aspx

于 2011-05-17T13:58:20.323 回答