PDA

View Full Version : سوال: membership



avajavid
جمعه 16 مرداد 1394, 23:00 عصر
سلام دوستان
اگه کسی می تونه منو در این زمینه راهنمایی کنه ممنون میشم
چطوری می تونم با استفاده از membership کاربری رو اضافه کنم که بعد بتونه لاگین شه
واقعا ممنون میشم راهنمایی کنید.

LostOfMind
شنبه 17 مرداد 1394, 08:25 صبح
ابتدا کد زیر را برای بررسی نام کاربری و رمز عبور عبور وارد کنید:

public bool CheckUserName(string UserName)
{
bool res = false;
MembershipUserCollection membersCollection = Membership.GetAllUsers();
MembershipUser[] members = new MembershipUser[membersCollection.Count];
membersCollection.CopyTo(members, 0);
for (int i = 0; i < members.Length; i++)
{
if (UserName == members[i].UserName)
res = true;
}
}
return res;
}



public bool CheckPassword(string Pass)
{
bool res = false;
if (Pass.Length >= 5)
res = true;
else
res = false;
return res;
}



این کد رو هم برای دریافت خطا بنویس:

public string GetErrorMessageCreateUser(MembershipCreateStatus status)
{
switch (status)
{
case MembershipCreateStatus.DuplicateUserName:
return "لطفا نام کاربری دیگری وارد نمایید، نام کاربری وارد شده در سایت موجود می باشد";

case MembershipCreateStatus.DuplicateEmail:
return "آدرس ایمیل وارد شده قبلا در بانک سایت ثبت شده است، لطفا آدرس ایمیل دیگری وارد نمایید.";

case MembershipCreateStatus.InvalidPassword:
return "فرمت پسورد وارد شده اشتباه است ، لطفاً مجدداً سعی کنید.";

case MembershipCreateStatus.InvalidEmail:
return "آدرس ایمیل وارد شده صحیح نمی باشد ، لطفا آدرس ایمیل دیگری وارد نمایید.";

case MembershipCreateStatus.InvalidAnswer:
return "The password retrieval answer provided is invalid. Please check the value and try again.";

case MembershipCreateStatus.InvalidQuestion:
return "The password retrieval question provided is invalid. Please check the value and try again.";

case MembershipCreateStatus.InvalidUserName:
return "The user name provided is invalid. Please check the value and try again.";

case MembershipCreateStatus.ProviderError:
return "The authentication provider returned an error. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

case MembershipCreateStatus.UserRejected:
return "The user creation request has been canceled. Please verify your entry and try again. If the problem persists, please contact your system administrator.";

default:
return "یک خطای ناشناخته اتفاق افتاده است ، لطفاً مجدداً سعی فرمایید ، چنانچه برطرف نشد با شرکت پشتیبان تماس بگیرید.";
}

}




و سپس برای عضویت کاربر از کد زیر استفاده کنید:

bool userNameExists = false;
bool passwordLength = false;
//بررسی نام کاربری
userNameExists = CheckUserName(txtUserName.Text);
//بررسی صحت کلمه عبور
passwordLength = CheckPassword(txtPassword.Text);
//---------------------------------------------
if ((!userNameExists) && (passwordLength))
{
MembershipCreateStatus mcu = new MembershipCreateStatus();
MembershipUser newUser = Membership.CreateUser(txtUserName.Text, txtPassword.Text, txtEmail.Text, txtQuestion.Text, txtAnswere.Text, True, out mcu);
if (newUser == null)
{
lbl_alerterror.Text = GetErrorMessageCreateUser(mcu);
}
else
{
//تخصیص نقش به کاربر
Roles.AddUserToRole(txtUserName.Text, "User");
lbl_alertsuccess.Text = "با موفقیت ثبت شد";
}
}
else
{
if (userNameExists)
{
txtUserName.Focus();
Panel_alerterror.Visible = true;
lbl_alerterror.Text = "نام کاربری تکراری است";
}
if (!passwordLength)
{
txtPassword.Focus();
Panel_alerterror.Visible = true;
lbl_alerterror.Text = "رمز عبور باید 5 کاراکتر باشد"
}
}

notlikeothers
شنبه 17 مرداد 1394, 09:58 صبح
درود.من به شخصه کنترل لاگین و register خود aspرو نمیپسندم.خودم نوشتم و خیلی هم مشتری پسند تر و سفارش پذیر تره

avajavid
دوشنبه 19 مرداد 1394, 19:45 عصر
سلام خیلی ممنون

bahar200
شنبه 31 مرداد 1394, 12:11 عصر
salam class high light ham mizashtin lotfan

mrhoseinzadeh
دوشنبه 21 اسفند 1396, 17:13 عصر
با سلام
از این کد خوب و مفیدتون ممنونم ولی من به تازگی موقع ثبت به این خطا بر میخورم

The user name provided is invalid. Please check the value and try again
در واقع قسمت
case MembershipCreateStatus.InvalidUserName:

از کد خطای ثبت کاربر
نمیدونم از چی ناشی میشه
یعنی چطور باید حلش کرد
اگه راهنمایی بفرمایید ممنون میشم