با استفاده از روشهای گوناگون میتوان CreateUserWizard را سفارشی نمود؛ از طریق مشخصات آن، کاستن و یا افزودن مرحله و رویدادهای آن. در این بخش میبینیم که چگونه ظاهر کنترل را از طریق مشخصات آن سفارشی کنیم؛ و در ادامه سفارشی ساختن رفتار کنترل از طریق رویدادهای آن را فرا میگیریم.
تمام متنهایی که به طور پیش فرض در کنترل CreateUserWizard نمایش داده میشوند از طریق مشخصات کنترل قابل تغییر هستند. برای مثال؛ متن برچسبهای User Name, Password, Confirm Password, E-mail, Security Question و Security Answer که در کنار جعبههای متن نمایش داده میشوند را میتوان با استفاده از مشخصههای UserNameLabelText, PasswordLabelText, ConfirmPasswordLabelText, EmailLabelText, QestionLabelText و AnswerLabelText سفارشی ساخت. همچنین مشخصههایی برای تعیین متن دکمههای Create User و Continue در CreateUserWizardStep و CompleteWizardStep وجود دارند.
علاوه بر مشخصههایی که مربوط به ظاهر هستند، بعضی از مشخصهها بر رفتار کنترل اثر میگذارند. مشخصه DisplayCancelButton از آن نوع است. اگر این مشخصه با مقدار true برابر شده باشد، در کنار دکمه Create User یک دکمه دیگر با متن Cancel نمایش داده میشود. اگر این مشخصه برابر true شد برای مشخصه CancelDestinationPageUrl باید نشانی یک صفحه مشخص کرد تا هنگام کلیک دکمه Cancel توسط کاربر، کاربر به آن صفحه هدایت شود. همانگونه که پیشتر گفته شد، با کلیک روی دکمه Continue در مرحله پایانی فقط یک Postback انجام میشود و کاربر در همان صفحه میماند. برای هدایت کاربر به صفحه دیگر بعد از کلیک دکمه Continue باید مشخصه ContinueDestinationPageUrl را با نشانی یک صفحه مقداردهی کنیم.
حالا در صفحه RegisterUser کنترل CreateUserWizard را طوری تغییر میدهیم که دکمه Cancel را نمایش داده و هنگام کلیک این دکمه و دکمه Continue کاربر به صفحه Default.aspx هدایت شود. برای انجام این کار مقدار مشخصه DisplayCancelButton را برابر True قرارداده و CancelDestinationPageUrl و ContinueDestinationPageUrl را برابر “~/Default.aspx” قرار دهید.
هنگامی که یک بازدید کننده نام کاربری، گذرواژه، رایانامه، پرسش امنیتی و پاسخ آن را وارد کرده و بر روی دکمه Create User کلیک میکند، یک کاربر جدید ایجاد شده و همزمان آن کاربر login میشود. شاید این امر از نظر کاربر بسیار خوب باشد که همزمان با ثبت نام، نام کاربری آن نیز فعال گشته و داخل سایت شود. اما، شاید از نظر شما بهتر باشد که بازدید کننده پس از ثبت نام login نشود. بدین منظور مشخصه LoginCreateUser را برابر false قرار دهید.
حساب کاربری در بستر عضویت شامل یک پرچم تایید (approved) است؛ کاربری که تایید نشده باشد نمیتواند داخل سایت شود (login کند). به طور پیش فرض، حساب کاربری جدید که ایجاد میشود، تایید نیز میگردد و کاربر میتواند همان لحظه وارد سایت شود. این امکان وجود دارد که کاربر جدید ایجاد شده تایید نشده (unapproved) باشد. شاید شما بخواهید کاربر جدید توسط مدیر سایت تایید شود؛ و یا ممکن است بخواهید قبل از اجازه ورود به کاربر جدید درستی رایانامه وارد شده را بسنجید. برای این کار بهتر است کاربر جدید هنگام ثبت نام تایید نشود؛ بدین منظور مشخصه DisableCreateUser را برابر true قرار دهید.
دو مشخصه دیگر که رفتاری هستند عبارتند از: AutoGeneratePassword و MailDefinition. اگر مشخصه AutoGeneratePassword برابر true قرار داده شود، جعبه متنهای گذرواژه و تکرار گذرواژه نمایش داده نمیشوند، به جای آن با استفاده از متد GeneratePassword در کلاس Membership به طور خودکار گذرواژه تولید میگردد. متد GeneratePassword یک گذرواژه بر اساس ساختار پیکربندی شده؛ کمترین تعداد حروف، کمترین تعداد حروف غیر الفبایی؛ تولید میکند.
مشخصه MailDefinition برای فرستادن رایانامه به نشانی وارد شده هنگام ثبت نام، بسیار کاربردی است. مشخصه MailDefinition دارای زیرمشخصههایی برای انجام تنظیمات فرستادن رایانامه میباشد. این زیرمشخصهها شامل: Subject, Priority, IsBodyHtml, From, CC و BodyFileName میباشد. مشخصه BodyFileName به یک فایل متنی و یا HTML اشاره میکند که متن رایانامه در آن قرار دارد. بدنه رایانامه دو placeholder (متاسفانه ترجمهای برای این به فکرم نرسید) را پشتیبانی میکند: <%UserName%> و <%Password%>. این دو با مقادیر وارد شده توسط بازدید کننده هنگام ایجاد کاربر جدید جایگزین میشوند.