星期三, 7月 19, 2006

ResetPassword

Asp.net 2.0是內建了給使用者使用的changepassword和passwordrecovery,但是如果使用者沒改密碼,也忘了密碼提示,要怎麼辦呢?沒錯,微軟是設計了resetPassword,但是這個函式要提供密碼提示的答案,使用者如果記得就自己設就好了,這個函式似乎一點用都沒有。
其實不然,翻看ASP.net的論壇,微軟的開發者提出了一種技巧:Providers。另外設一組requiresQuestionAndAnswer="false" 的provider,就可以輕易達到這個功能。
作法如下
1.改machine.config,xp在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG。加上新的一組provider,我的設定如下:
2. 新增個按紐,在onclick時寫下下面的東西,然後設個label把重設的密碼秀出來。如果可以的話,最好把新的密碼寄給使用者。
C#
MembershipProvider mp = Membership.Providers["AspNetAdminMembership"];
MembershipUser user = mp.GetUser(TreeView1.SelectedValue.ToString(), false);
lblPasswordReset.Text = user.ResetPassword();
VB
Dim mp As MembershipProvider = Membership.Providers("AspNetAdminMembership")
Dim user As MembershipUser = mp.GetUser(ddlUsers.SelectedItem.ToString, False)
Dim pass As String = user.ResetPassword
(C#跟VB有點出入,但我懶得改...)
3.記得把修改後的程式還有machine.config丟到主機上面
4.沒有了

星期四, 7月 06, 2006

GridView加上刪除確認按鈕

如果已經會使用button內建的onclientclick,用Gridview的刪除確認就容易得多。在gridview新增的個template field,然後edit template選items template,新增一個按鈕,然後Command那些選delete,在onclientclick打return confirm('確定傳送?'),應該就大功告成了。

GridView無法新增

最近看好幾本新書都說Gridview有新增的功能,一直試半天都試不出來。最近看祭司的書才明說:GridView沒有實作新增這一部分,必須透過Form或Detail才能新增。