PDA

View Full Version : سوال: نحوه كار با Profile در Membership در پروژه هاي WebApplication



ali_shmki
چهارشنبه 10 شهریور 1389, 01:20 صبح
سلام به اسانيد گرامي.
همونظور كه مستحضر هستيد، استفاده از Profile ها در ASP.NET WebSite به راحتي امكانپذير هست. با اضافه كردن پراپرتي ها در web.config ميشه Profile يك كاربر رو ست كرد:

Profile.Name = TextBox1.Text;

اما در ASP.NET WebApplication وضعيت به گونه ديگري است و نميشه مستقيما به Profile دسترسي داشت. چاره كار چيه؟

hesam_a110
چهارشنبه 10 شهریور 1389, 01:25 صبح
درود بر شما
سوالتون را واضحتر میگید؟
از چه چیزیش مستقیما نمیشه استفاده کرد؟

imanasp
چهارشنبه 10 شهریور 1389, 01:49 صبح
سلام به اسانيد گرامي.
همونظور كه مستحضر هستيد، استفاده از Profile ها در ASP.NET WebSite به راحتي امكانپذير هست. با اضافه كردن پراپرتي ها در web.config ميشه Profile يك كاربر رو ست كرد:

Profile.Name = TextBox1.Text;اما در ASP.NET WebApplication وضعيت به گونه ديگري است و نميشه مستقيما به Profile دسترسي داشت. چاره كار چيه؟

باید از کلاس Web Profile Builder استفاده کنی
http://weblogs.ASP.NET/joewrobel/archive/2008/02/03/web-profile-builder-for-web-application-projects.aspx

http://webprofile.codeplex.com/releases/view/5460

hp1361
چهارشنبه 10 شهریور 1389, 02:40 صبح
سلام

به نظر من بجای استفاده از Profile Builder ها خودت کلاسش رو بسازی و ازش استفاده کنی بهتره.حداقلش اینه که میدونی چیکار داری میکنی و این چیزیه که توی همه ی پروژه هات ازش استفاده خواهی کرد و دونستنش بدردت می خوره

http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

موفق باشیم

ali_shmki
چهارشنبه 10 شهریور 1389, 12:49 عصر
سلام

به نظر من بجای استفاده از Profile Builder ها خودت کلاسش رو بسازی و ازش استفاده کنی بهتره.حداقلش اینه که میدونی چیکار داری میکنی و این چیزیه که توی همه ی پروژه هات ازش استفاده خواهی کرد و دونستنش بدردت می خوره

http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

موفق باشیم

دوست عزيز من قبلا به اين لينك سر زدم. ولي چون اومده لايه اي كار كرده و namespace هاش با من فرق داره من نميتونم از كدهاش استفاده كنم. مدام پيغام خطا ميده. مثلا اين يكي از اون خطاهاست:
The settings property 'Personal' was not found.

آيا توي web.config هم بايد پراپرتي ها رو تعريف كنم؟

hp1361
چهارشنبه 10 شهریور 1389, 15:52 عصر
سلام دوست عزیز

من بشکل زیر در برنامه ام استفاده کردم.ببین میتونی برداشت مورد نیازت رو بکنی




namespace CouponProject.Classes
{
public class CustomProfile : ProfileBase
{

public string StateName
{
get
{
return GetPropertyValue("StateName") as string;
}
set
{
SetPropertyValue("StateName", value);
}
}
public string StateCode
{
get
{
return GetPropertyValue("StateCode") as string;
}
set
{
SetPropertyValue("StateCode", value);
}
}
public string CityName
{
get
{
return GetPropertyValue("CityName") as string;
}
set
{
SetPropertyValue("CityName", value);
}
}
public string CityCode
{
get
{
return GetPropertyValue("CityCode") as string;
}
set
{
SetPropertyValue("CityCode", value);
}
}
public string SubstationName
{
get
{
return GetPropertyValue("SubstationName") as string;
}
set
{
SetPropertyValue("SubstationName", value);
}
}
public string SubstationCode
{
get
{
return GetPropertyValue("SubstationCode") as string;
}
set
{
SetPropertyValue("SubstationCode", value);
}
}

public static CustomProfile GetProfile()
{
return (CustomProfile)HttpContext.Current.Profile;
}

public static CustomProfile GetProfile(string userName)
{
return (CustomProfile)Create(userName);
}
}
}


برای Web.Config



<profile enabled="true" defaultProvider="CouponProject.ProfileProvider" inherits="CouponProject.Classes.CustomProfile">
<providers>
<add name="CouponProject.ProfileProvider" type="System.Web.Profile.SqlProfileProvider" applicationName="/" connectionStringName="CouponDBConnectionString"/>
</providers>
</profile>


موفق باشیم

ali_shmki
چهارشنبه 10 شهریور 1389, 21:51 عصر
آقا دست شما درد نكنه. ولي من هنوز يه مشكل ديگه دارم.
شما پروفايل رو چه طور ست ميكني؟ من از اين كد واسه ست كردن استفاده ميكنم ولي اين ارور رو ميده:
This property cannot be set for anonymous users.

if (User.Identity.IsAuthenticated)
{
CustomProfile cp = new CustomProfile();
cp.Name = "ALI";
cp.Family = "ALAVI";
}

hp1361
چهارشنبه 10 شهریور 1389, 23:27 عصر
سلام دوست عزیز

خوب شما باید قبل از دادن مقادیر به پروفایل مشخص کنید که این مقادیر برای کدام یوزر است. از کد زیر برای مقدار دهی استفاده کنید




CustomProfile cp = new CustomProfile();
cp.Initialize(User.Identity.Name.ToString(), true);
cp.Name = "ALI";
cp.Family = "ALAVI";

موفق باشیم