PDA

View Full Version : مشکل با Profile در سایت آپلود شده



ramin149
پنج شنبه 17 شهریور 1390, 17:28 عصر
سلام من در سایتم برای ذخیره اطلاعات کاربران از Profile استفاده گردم . ولی الان که سایت را روی هاستم آپلود گردم پروفایل کار نمی کنه . باید چه تغییری در هاستم انجام بدم ؟

ramin149
جمعه 18 شهریور 1390, 02:18 صبح
به چه روشی جداول membership را به دیتابیس سایت خود اضافه می کنیم

reza344
جمعه 18 شهریور 1390, 07:30 صبح
به چه روشی جداول membership را به دیتابیس سایت خود اضافه می کنیم

سلام
از مسیر زیر Command Prompt رو اجرا کن ،در خط فرمان دستور aspnet_regsql رو تایپ کن ، ویزارد باز شده رو دنبال کن و دیتابیس مورد نظر رو انتخاب کن
All Program>>Microsoft visual Satudio2010>>visual studio tools>>visual studio command prompt

ramin149
جمعه 18 شهریور 1390, 11:20 صبح
با توضیح شما تونستم جداول را در دیتابیس درست کنم . اما برنامه نتوانست از طریق پروفایل اطلاعات را ذخیره کنه آیا باید کار دیگر هم انجام دهیم برای آدرس دهی به دیتابیس و یا نوع چیدمان جداول باید به چه صورتی باشد ؟

reza344
جمعه 18 شهریور 1390, 11:31 صبح
این تگها رو هم به وب کانفیگ اضافه کن:
<profile defaultProvider="customizedprofileprovider" enabled="true">
<providers>
<clear/>
<add name="customizedprofileprovider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="yourConnectionStringName" applicationName="/" description=""/>
</providers>
<properties>
<add name="name" type="String"/>
<add name="family" type="String"/>
</properties>
</profile>


البته تو قسمت add name هرچی دوس داری ادد کن
موفق باشی

ramin149
یک شنبه 20 شهریور 1390, 21:53 عصر
این تگها رو هم به وب کانفیگ اضافه کن:
<profile defaultProvider="customizedprofileprovider" enabled="true">
<providers>
<clear/>
<add name="customizedprofileprovider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="yourConnectionStringName" applicationName="/" description=""/>
</providers>
<properties>
<add name="name" type="String"/>
<add name="family" type="String"/>
</properties>
</profile>


البته تو قسمت add name هرچی دوس داری ادد کن
موفق باشی

دوست عزیز کاری که شما گفتید را انجام دادم ولی باز درست نشد آیا کد بالا برای asp.net 4 هم صدق می کنه . چون ایتم connectionStringName در asp.net 4 وجود نداره

reza344
یک شنبه 20 شهریور 1390, 22:18 عصر
سلام
آیا تگ <connectionStrings> رو به وب کانفیگ اضافه کردی؟؟؟


آیا کد بالا برای asp.net 4 هم صدق می کنه
بله فرقی نمیکنه

reza344
یک شنبه 20 شهریور 1390, 22:22 عصر
یادآوری:
بجای yourConnectionStringName باید نام ConnectionString خودت رو که به وب کانفیگ اضافه کردی رو وارد کنی

ramin149
یک شنبه 20 شهریور 1390, 22:22 عصر
سلام
آیا تگ <connectionStrings> رو به وب کانفیگ اضافه کردی؟؟؟

خیر . آیا می توانید کد connectionStrings را بگذارید

reza344
یک شنبه 20 شهریور 1390, 22:26 عصر
ببین ساخت ConnectionString تو وب کانفیگ خیلی راحته ، ابتدا رو یکی از فرمهات یه شی دیتا سورس مثل SqlDatasource اضافه کن سپس از مثلت کنار اون گزینه Configure datasource رو کلیک کن تو پنجره باز شده دکمه new connectin رو بزن در پنجره جدید تو قسمت Server name نطقه تایپ کن (.) سپس از دراپ داون لیست پایینی دیتا بیس مورد نظر رو انتخاب کن و OK رو کلیک کن،سپس Next و تیک مربوطه رو انتخاب(این گزینه باعث میشه که ConnectionString به وب کانفیگ اضافه بشه ) و سپس دوباره Next و در نهایت Finish حال میتونی SqlDatasource رو دیگه Delete کنی چون دیگه کاری باهاش نداری . اگه به وب کانفیگ مراجعه کنی میتونی تگ <connectionStrings> رو ببینی که اتوماتیک اضافه شده .
موفق باشی

reza344
یک شنبه 20 شهریور 1390, 22:39 عصر
اگرم خواستی دستی اضافه کنی مثلا اینجوری اضافه میکنی(البته این فقط یه نمونست) :
<connectionStrings>
<add name="profileDBConnectionString" connectionString="Data Source=.;Initial Catalog=profileDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

موفق باشی

reza344
یک شنبه 20 شهریور 1390, 22:47 عصر
ضمنا فراموش نشه که محل تگ Profile داخل سکشن <system.web> میباشد، دیگه بعید میدونم مشکلی داشته باشی :متفکر:
موفق باشی

ramin149
سه شنبه 22 شهریور 1390, 15:27 عصر
ببخشید که من هی مزاحم میشم . کارهایی که شما گفتید را انجام دادمو تونستم از طریق کامپیوتر خود به دیتابیس متصل شوم . اما در هاست این خطا را به من نمایش می دهد


This property cannot be set for anonymous users.

باید چه کاری انجام دهم تا مشکل حل شود ؟

reza344
سه شنبه 22 شهریور 1390, 18:05 عصر
سلام دوست عزیز
وقتی پروژه رو هاست میکنی باید ConnectionString رو هم تغییر بدی ،این کارو انجام دادی؟
پست 9 اینجا (http://barnamenevis.org/showthread.php?278013-%D8%A2%D9%BE-%D9%84%D9%88%D8%AF-%D8%B3%D8%A7%DB%8C%D8%AA&p=1226850&highlight=#post1226850) رو ببین یه نمونه ConnectionString به عنوان مثال گذاشتم
موفق باشید

ramin149
سه شنبه 22 شهریور 1390, 19:08 عصر
دوست عزیز فکر کنم دیگه مشکل از connection string نباشه مشکل از Profile.Initialize(Session["id"].ToString(), true); باشه ، که هر ردیف اطلاعات مال کدام کابر است من لینک زیر رو خوندم
http://barnamenevis.org/showthread.php?243528-%D9%86%D8%AD%D9%88%D9%87-%D9%83%D8%A7%D8%B1-%D8%A8%D8%A7-Profile-%D8%AF%D8%B1-Membership-%D8%AF%D8%B1-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%D9%8A-WebApplication
ولی به نظر من روش درستی نیست .
و من اومدم با کد زیر اطلاعات رو داخل پروفایل ریختم

Session["id"] = dt.Rows[0]["uid"].ToString();
Profile.Initialize(Session["id"].ToString(), true);
Profile.FirstName = dt.Rows[0]["uname"].ToString();

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

reza344
سه شنبه 22 شهریور 1390, 19:31 عصر
سلام
به این صورت عمل کن :
ProfileCommon p = Profile.GetProfile(Username);
حالا Username رو از هر جا بدست میاری فرقی نمیکنه (مثلا سشن)
P.FirstName="firstname":
p.Save();