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 の説明はどこにでもあります。

誰かが以前にこの問題に遭遇したことがあるか、またはこのシナリオがこの特定のステータスを返す理由について説明できるかどうか疑問に思っていました. 助けてくれてありがとう。

アップデート

ProviderUserKey に Guid.NewGuid を使用しましたが、うまくいきました。

_provider.CreateUser(userName, password, email,null, null, true, Guid.NewGuid(), out status);

ダニエル・A・ホワイト、助けてくれてありがとう。あなたが提供した記事のリンクは、私がそれを理解するために必要なものでした.

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 に答える