PDA

View Full Version : سوال: مشکل در مورد تعیین ROLE مورد نظر هر کاربر موقع REGISTER



mojtaba_webdeveloper
شنبه 29 مرداد 1390, 16:01 عصر
من از CreatUserWizard استفاده کردم . هنگام ثبت کاربر جدید چطور میشه role مورد نظرمون رو هم اضافه کنیم ؟ چون برای دسترسی به فولدر های مختلف از role ها استفاده کردم . منطقی نیست که هربار که میخوام یک کاربر جدید اضافه کنم از Web Site Administration Tool یک role رو به user جدید انتساب بدم .
خواهش میکنم راهنماییم کنید

hiran
یک شنبه 30 مرداد 1390, 01:23 صبح
لازم است در صفحه‌یی که توش کنترل CreateUserWizard را گذاشتی کدهای زیر را برای رخدادهای Page_Load و RegisterUserWithRoles_ActiveStepChanged بنویسی.(RegisterUserWithRoles آی‌دی کنترل CreateUserWizard است که باید با آی‌دی خودت عوضش کنی)


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
' Reference the SpecifyRolesStep WizardStep
Dim SpecifyRolesStep As WizardStep = CType(RegisterUserWithRoles.FindControl("SpecifyRolesStep"), WizardStep)

' Reference the RoleList CheckBoxList
Dim RoleList As CheckBoxList = CType(SpecifyRolesStep.FindControl("RoleList"), CheckBoxList)

' Bind the set of roles to RoleList
RoleList.DataSource = Roles.GetAllRoles()
RoleList.DataBind()
End If
End Sub




Protected Sub RegisterUserWithRoles_ActiveStepChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RegisterUserWithRoles.ActiveStepChanged
'Have we JUST reached the Complete step?
If RegisterUserWithRoles.ActiveStep.Title = "Complete" Then
' Reference the SpecifyRolesStep WizardStep
Dim SpecifyRolesStep As WizardStep = CType(RegisterUserWithRoles.FindControl("SpecifyRolesStep"), WizardStep)

' Reference the RoleList CheckBoxList
Dim RoleList As CheckBoxList = CType(SpecifyRolesStep.FindControl("RoleList"), CheckBoxList)

' Add the checked roles to the just-added user
For Each li As ListItem In RoleList.Items
If li.Selected Then
Roles.AddUserToRole(RegisterUserWithRoles.UserName , li.Text)
End If
Next
End If
End Sub



تنظیمات کنترل CreateUserWizard را به این صورت انجام بده(ترجمه‌ها را هم به دلخواه خودت بازنویسی کن!)



<asp:CreateUserWizard ID="RegisterUserWithRoles" runat="server"
ContinueDestinationPageUrl="~/Default.aspx" LoginCreatedUser="False"
AnswerLabelText="جواب سوال امنیتی"
AnswerRequiredErrorMessage="وارد کردن جواب پرسش امنیتی الزامی است."
CancelButtonText="لغو" CompleteSuccessText="کاربر جدید با موفقیت ساخته شد."
ConfirmPasswordCompareErrorMessage="پسوردهای وارد شده مطابق هم نیستند."
ConfirmPasswordLabelText="وارد کردن مجدد کلمه عبور:"
ConfirmPasswordRequiredErrorMessage="وارد کردن کلمه عبور مجدد الزامی است."
ContinueButtonText="ادامه" CreateUserButtonText="ایجاد کاربر جدید"
DuplicateEmailErrorMessage="آدرس ایمیلی که وارد کرده‌اید قبلاً وارد شده است. ایمیل جدیدی را وارد کنید."
DuplicateUserNameErrorMessage="نام کاربری متفاوتی وارد کنید."
EmailLabelText="ایمیل:"
EmailRegularExpressionErrorMessage="لطفاً ایمیل دیگری وارد کنید"
EmailRequiredErrorMessage="ورود پست الکترونیکی الزامی است"
FinishCompleteButtonText="پایان" FinishPreviousButtonText="قبلی"
PasswordLabelText="کلمه عبور:"
PasswordRegularExpressionErrorMessage="لطفاً کلمه عبور دیگری را وراد کنید"
PasswordRequiredErrorMessage="وارد کردن کلمه عبور الزامی است"
QuestionLabelText="سوال امنیتی:"
QuestionRequiredErrorMessage="پرسش امنیتی الزامی است"
StartNextButtonText="بعدی" StepNextButtonText="بعدی"
StepPreviousButtonText="قبلی"
UnknownErrorMessage="کاربر جدید ایجاد نشد. مجددا سعی کنید."
UserNameLabelText="نام کاربر:"
UserNameRequiredErrorMessage="وارد کردن نام کاربری الزامی است">
<WizardSteps>
<asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"
Title="اطلاعات کاربر جدید را وارد کنید:">
</asp:CreateUserWizardStep>
<asp:WizardStep ID="SpecifyRolesStep" runat="server" StepType="Step"
Title="نقش کاربر را مشخص کنید" AllowReturn="False">
<asp:CheckBoxList ID="RoleList" runat="server">
</asp:CheckBoxList>
</asp:WizardStep>
<asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
</asp:CompleteWizardStep>
</WizardSteps>
</asp:CreateUserWizard>

sh
یک شنبه 30 مرداد 1390, 22:52 عصر
دوست عزیز منم دقیقا میخواستم این کار رو انجام بدم البته باید این کدها رو تست کنم ولی آیا کاری رو که میخوام انجام میده ؟ :

در سایت یک سری رول تعریف شده . من میخوام مدیر سیستم وقتی داره کادر مخصوص SignIN برای User انجام میده توی ویزارد CreatUser یک DropDownList باشه که رول های موجود رو نمایش بده و مدیر با انتخاب اون کاربر رو به اون رول اختصاص بده

ممنون میشم جواب بدین

hiran
دوشنبه 31 مرداد 1390, 00:56 صبح
دوست عزیز منم دقیقا میخواستم این کار رو انجام بدم البته باید این کدها رو تست کنم ولی آیا کاری رو که میخوام انجام میده ؟ :

در سایت یک سری رول تعریف شده . من میخوام مدیر سیستم وقتی داره کادر مخصوص SignIN برای User انجام میده توی ویزارد CreatUser یک DropDownList باشه که رول های موجود رو نمایش بده و مدیر با انتخاب اون کاربر رو به اون رول اختصاص بده

ممنون میشم جواب بدین

بله دوست من جواب می ده. فقط به جای DropDownList فهرست رول ها را به صورت یک فهرست چک باکس دار نشان می ده. که می توانی یکی یا چند تا یا همشو انتخاب کنی. خودت می تونی به جای چک باکس DropDownList قرار بدهی و فهرست رول ها را به آن بایند کنی. البته به نظر من چک باکس منطقی تره. چون ممکنه بخواهی به یک کاربر چند تا نقش تخصیص بدهی. DropDownList برای وقتی به درد می خوره که بخواهی یک گزینه را از میان چندتا گزینه انتخاب کنی. موفق باشی