1
有沒有辦法配置ASP.NET SqlMembershipProvider,使電子郵件是可選的,但提供時必須是唯一的?ASP.NET SqlMembershipProvider:唯一但不是必需的電子郵件?
我只發現requiredUniqueEmail
屬性(web.config),這使得電子郵件是強制性的。我是否必須在賬戶註冊過程中自行檢查現有電子郵件地址?
還是有更好的方法來處理這種情況?
有沒有辦法配置ASP.NET SqlMembershipProvider,使電子郵件是可選的,但提供時必須是唯一的?ASP.NET SqlMembershipProvider:唯一但不是必需的電子郵件?
我只發現requiredUniqueEmail
屬性(web.config),這使得電子郵件是強制性的。我是否必須在賬戶註冊過程中自行檢查現有電子郵件地址?
還是有更好的方法來處理這種情況?
一個簡單但可能有風險的方法是直接修改存儲過程來執行此操作。
修改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
我說這是危險的,因爲沒有人會期待你修改這個和你最好文檔的更改很好。
似乎是「最簡單」的解決方案。謝謝。 – davehauser 2010-11-28 13:26:50