PDA

View Full Version : سوال در ارتباط با membership در asp.net



mor_zia
شنبه 19 مرداد 1392, 15:50 عصر
سلام
من از طریق سیستم membership خود asp تو وبسایتم استفاده کردم و قسمتهای login , logout , register بدرستی کار می کنه
مشکلم اینجاست که قسمت register رو گذاشتم تو فولدر مدیر سابت که فقط اون دسترسی داشته باشه.
حالا وقتی مدیر یک کاربر جدید رو ثبت میکنه، کاربر تعریف شده بصورت خودکار Login میشه و از طرفی چون دسترسی به صفحه مدیر نداره، مجددا باید با نام کاربری مدیر login کنیم.
می خواستم ببینم چطور میشه از ورود خودکار کاربر پس از ثبت جلوگیری کرد
ویژوال 2010 با فریمورک 4 استفاده می کنم
کد مربوط به صفحه register رو در زیر گذاشتم:


protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
}

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);




string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/admin/Register.aspx";
}
Response.Redirect(continueUrl);
}

mf_007
شنبه 19 مرداد 1392, 16:06 عصر
این کد رو تو رویداد CreateUser کنترل Createuser wizard بزار

CreateUserWizard1.LoginCreateUser =false;

mor_zia
شنبه 19 مرداد 1392, 17:27 عصر
این کد رو تو رویداد CreateUser کنترل Createuser wizard بزار

CreateUserWizard1.LoginCreateUser =false;


الان کدهای صفحه register بصورت زیر هست:


<asp:CreateUserWizard ID="RegisterUser" runat="server" EnableViewState="false"
OnCreatedUser="RegisterUser_CreatedUser"
CompleteSuccessText="کاربر با موفقیت به ثبت رسید" >
<LayoutTemplate>
<asp:PlaceHolder ID="wizardStepPlaceholder" runat="server"></asp:PlaceHolder>
<asp:PlaceHolder ID="navigationPlaceholder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<WizardSteps>
<asp:CreateUserWizardStep ID="RegisterUserWizardStep" runat="server">
<ContentTemplate>
<h2>

</h2>
<div style="font-family:Tahoma; font-size:12px;">
<p>
اطلاعات فرم زیر را وارد نمایید
</p>
<p>
حداقل طول رمز عبور نباید کمتر از <%= Membership.MinRequiredPasswordLength %> باشد
</p>
<span class="failureNotification">
<asp:Literal ID="ErrorMessage" runat="server"></asp:Literal>
</span>
<asp:ValidationSummary ID="RegisterUserValidationSummary" runat="server" CssClass="failureNotification"
ValidationGroup="RegisterUserValidationGroup"/>
<div class="accountInfo">
<fieldset class="register">
<legend>اطلاعات کاربری</legend>
<p>
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">نام کاربری:</asp:Label>
<asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
CssClass="failureNotification" ErrorMessage="نام کاربری را وارد نمایید" ToolTip="User Name is required."
ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">ایمیل:</asp:Label>
<asp:TextBox ID="Email" runat="server" CssClass="textEntry"></asp:TextBox>
<asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email"
CssClass="failureNotification" ErrorMessage="ایمیل کاربر را وارد نمایید" ToolTip="E-mail is required."
ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">رمز عبور:</asp:Label>
<asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
CssClass="failureNotification" ErrorMessage="رمز عبور را وارد نمایید." ToolTip="Password is required."
ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
</p>
<p>
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">تکرار رمزعبور:</asp:Label>
<asp:TextBox ID="ConfirmPassword" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="ConfirmPassword" CssClass="failureNotification" Display="Dynamic"
ErrorMessage=" تکرار رمز عبور را وارد نمایید" ID="ConfirmPasswordRequired" runat="server"
ToolTip="Confirm Password is required." ValidationGroup="RegisterUserValidationGroup">*</asp:RequiredFieldValidator>
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
CssClass="failureNotification" Display="Dynamic" ErrorMessage="رمز عبور با هم مطابقت ندارد"
ValidationGroup="RegisterUserValidationGroup">*</asp:CompareValidator>
</p>
</fieldset>
<p class="submitButton">
<asp:Button ID="CreateUserButton" runat="server" CommandName="MoveNext" Text="ثبت کاربر"
ValidationGroup="RegisterUserValidationGroup"/>
</p>
</div>
</div>
</ContentTemplate>
<CustomNavigationTemplate>
</CustomNavigationTemplate>
</asp:CreateUserWizardStep>
</WizardSteps>
</asp:CreateUserWizard>


و


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Account_Register : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];

}

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);




string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/admin/Register.aspx";
}
Response.Redirect(continueUrl);

}

}

این کدها رو. که شما گفتین قبول نمیکنه .
حالا با توجه به کدهای بالا میشه دقیقا بفرمایید که کجا و چطور باید اضافه کنم.
چون آی دی مربوط به createWizard تو پروژه من RegisterUser هست . من بصورت زیر اضافه کردم:
RegisterUser.LoginCreatedUser = false;
ولی باز هم وقتی تست گرفتم، بعد از ثبت کاربر خودش لاگین میشه. دیگه اعصابمو داغون کرده

mf_007
شنبه 19 مرداد 1392, 17:37 عصر
ID کنترل شما RegisterUser هست به جای createuserwizard1 بزارید RegisterUser


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Account_Register : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];

}

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);


RegisterUser.LoginCreateUser =false;

string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/admin/Register.aspx";
}
Response.Redirect(continueUrl);

}

}

mor_zia
شنبه 19 مرداد 1392, 17:51 عصر
ID کنترل شما RegisterUser هست به جای createuserwizard1 بزارید RegisterUser


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Account_Register : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];

}

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);


RegisterUser.LoginCreateUser =false;

string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/admin/Register.aspx";
}
Response.Redirect(continueUrl);

}

}



دوست عزیز ، اینکار رو کردم ولی باز هم جواب نداد. یعنی بعد از ثبت کاربر جدید خودکار وارد میشه

mor_zia
شنبه 19 مرداد 1392, 18:15 عصر
کسی نمیتونه راهنماییم کنه .....

mf_007
شنبه 19 مرداد 1392, 18:44 عصر
با این تست کن ببین می شه



<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" DisableCreatedUser="True" LoginCreatedUser="False">

login create user رو تو خود تگ createuser wizard false کن

General-Xenon
شنبه 19 مرداد 1392, 20:22 عصر
سلام
من از طریق سیستم membership خود asp تو وبسایتم استفاده کردم و قسمتهای login , logout , register بدرستی کار می کنه
مشکلم اینجاست که قسمت register رو گذاشتم تو فولدر مدیر سابت که فقط اون دسترسی داشته باشه.
حالا وقتی مدیر یک کاربر جدید رو ثبت میکنه، کاربر تعریف شده بصورت خودکار Login میشه و از طرفی چون دسترسی به صفحه مدیر نداره، مجددا باید با نام کاربری مدیر login کنیم.
می خواستم ببینم چطور میشه از ورود خودکار کاربر پس از ثبت جلوگیری کرد
ویژوال 2010 با فریمورک 4 استفاده می کنم
کد مربوط به صفحه register رو در زیر گذاشتم:


protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
}

protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);




string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/admin/Register.aspx";
}
Response.Redirect(continueUrl);
}


سلام
FormsAuthentication.SetAuthCookie(RegisterUser.Use rName, false /* createPersistentCookie */);
اینو بردار از توی کد