1

ASP.NET SqlMembershipProvider を構成する方法はありますか?電子メールはオプションですが、提供された場合は一意でなければなりませんか?

requiredUniqueEmailメールを必須にする属性 (web.config)しか見つかりませんでした。これを省略して、アカウント登録プロセスで既存の電子メール アドレスのチェックを自分で実装する必要がありますか?

または、このシナリオを処理するより良い方法はありますか?

4

1 に答える 1

2

簡単ですが、おそらく危険な方法は、これを行うためにストアド プロシージャを直接変更することです。

aspnet_Membership_CreateUser以下を置き換えて変更します。

IF (@UniqueEmail = 1)
BEGIN
    IF (EXISTS (SELECT *
                FROM  dbo.aspnet_Membership m WITH ( UPDLOCK, HOLDLOCK )
                WHERE ApplicationId = @ApplicationId AND LoweredEmail = LOWER(@Email)))
    BEGIN
        SET @ErrorCode = 7
        GOTO Cleanup
    END
END

    IF (EXISTS (SELECT *
                FROM  dbo.aspnet_Membership m WITH ( UPDLOCK, HOLDLOCK )
                WHERE ApplicationId = @ApplicationId AND LoweredEmail = LOWER(@Email)))
    BEGIN
        SET @ErrorCode = 7
        GOTO Cleanup
    END

誰もあなたがこれを変更することを期待しておらず、変更を適切に文書化した方がよいので、私はそれが危険だと言います.

于 2010-11-16T16:37:58.380 に答える