2010-10-12 53 views
1

有沒有辦法配置ASP.NET SqlMembershipProvider,使電子郵件是可選的,但提供時必須是唯一的?ASP.NET SqlMembershipProvider:唯一但不是必需的電子郵件?

我只發現requiredUniqueEmail屬性(web.config),這使得電子郵件是強制性的。我是否必須在賬戶註冊過程中自行檢查現有電子郵件地址?

還是有更好的方法來處理這種情況?

回答

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 

我說這是危險的,因爲沒有人會期待你修改這個和你最好文檔的更改很好。

+0

似乎是「最簡單」的解決方案。謝謝。 – davehauser 2010-11-28 13:26:50

相關問題