PDA

View Full Version : سوال: نحوه ی ایجاد User Account جدید برای جداول Membership



ghodsana
جمعه 19 دی 1393, 17:30 عصر
بسم الله
سلام
من از طریق aspnet_regsql.exe جداول membership رو برای پروژه م ایجاد کردم
هنگامی که میخوام از طریق متد Createuser() در کلاس membership یه اکانت جدید ایجاد کنم با خطای زیر مواجه میشم :

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)


هر چی هم جست و جو کردم و کد web.config رو تغییر دادم به هیچ نتیجه ای نرسیدم

از دوستانی که مطلع هستن خواهش میکنم جواب بدن مشکل کجاست ؟

نام دیتا بیس : Security.mdf


کد صفحه ی web.config :


<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrame workSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="newsdbConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\newsdb.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />

<add name="SecurityConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirec tory|\Security.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>

<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
</system.web>

<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectio nFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>



کد صفحه ی CreatingUserAccounts.aspx.cs برای ثبت کاربر جدید:


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


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

const string passwordQuestion = "What is your favorite color";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack) SecurityQuestion.Text = passwordQuestion;

}
protected void CreateAccountButton_Click(object sender, EventArgs e)
{
MembershipCreateStatus createStatus;
MembershipUser newUser = System.Web.Security.Membership.CreateUser(Username .Text,
Password.Text,
Email.Text,
SecurityQuestion.Text,
SecurityAnswer.Text,
true, out createStatus);
switch (createStatus)
{
case MembershipCreateStatus.Success:
CreateAccountResults.Text = "The user account was successfully created!";
break;

case MembershipCreateStatus.DuplicateUserName:
CreateAccountResults.Text = "There already exists a user with this username.";
break;

case MembershipCreateStatus.DuplicateEmail:
CreateAccountResults.Text = "There already exists a user with this email address.";
break;

case MembershipCreateStatus.InvalidEmail:
CreateAccountResults.Text = "There email address you provided in invalid.";
break;

case MembershipCreateStatus.InvalidAnswer:
CreateAccountResults.Text = "There security answer was invalid.";
break;

case MembershipCreateStatus.InvalidPassword:
CreateAccountResults.Text = "The password you provided is invalid. It must be seven characters long and have at least one non-alphanumeric character.";
break;

default:
CreateAccountResults.Text = "There was an unknown error; the user account was NOT created.";
break;
}
}
}

ghodsana
شنبه 20 دی 1393, 01:23 صبح
دوستان من خودم علت رو پیدا و مشکلم رو به طریق زیر مرتفع کردم

مشکل اینجا بود که من برای عضویت provider تعریف نکرده بودم و provider رو بصورت زیر با توجه به تنظیمات web.config پروژه تنظیم و تعریف کردم و
در داخل تگ <system.web><system.web/> در داخل فایل web.config قرار دادم


<membership defaultProvider="mymembershipprovider">
<providers>
<clear/>
<add name="mymembershipprovider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SecurityConnectionString"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
applicationName="/"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0"/>
</providers>
</membership>