PDA

View Full Version : اضافه کردن Provider



programmable
پنج شنبه 26 مهر 1386, 14:03 عصر
سلام
وقتی Asp.net Configuration رو اجرا میکردم تو لیست provider ها فقط AspNetSqlProvider بود . خواستم تا پرووایدر دیگه ای مثل Access رو هم داشته باشم.

تو webconfig کد زیر رو اضافه کردم :


<system.web>
<membershipdefaultProvider="AspNetAccessProvider">
<providers>
<addname="AspNetAccessProvider"type="System.Web.Security.AccessMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>

</membership>
<roleManagerenabled="true"defaultProvider="AspNetAccessProvider" >
<providers>
<addname="AspNetAccessProvider"type="System.Web.Security.AccessRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>

</roleManager>
<authenticationmode="Forms" />
</system.web>


بعد دوباره Asp.net Configuration رو اجرا کردم تو قسمت انتخاب پروایدر به صورت پیش فرض AspNetAccessProvider قرار گرفته بود . تا اینجا مشکلی نیست ! ولی تا میرم تو تب Security
خطای زیر رو میده:


There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store.

The following message may help in diagnosing the problem: Could not load type 'System.Web.Security.AccessMembershipProvider' from assembly 'System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. (C:\Documents and Settings\pc\My Documents\Visual Studio 2005\WebSites\WebSite\web.config line 6)

ورژن رو یه بار هم به 2.0.3600.0 تغییر دادم هیچ فرقی نکرد!
:ناراحت:

SalarSoft
پنج شنبه 26 مهر 1386, 18:59 عصر
کلاسهایی با نام System.Web.Security.AccessRoleProvider و System.Web.Security.AccessMembershipProvider وجود ندارند.

کلاسهای تامین کننده membership و role به طور پیش فرض فقط برای SQLServer2005 وجود دارند.
اگر مایل هستید که اون رو در database دیگه پیاده سازی کنید، باید هم خود database و هم کلاسهای اون (Provider) رو پیاده سازی کنید.

rtech
جمعه 27 مهر 1386, 11:00 صبح
کلاسهایی با نام System.Web.Security.AccessRoleProvider و System.Web.Security.AccessMembershipProvider وجود ندارند.


چرا وجود دارند ! در کتاب ASP.net 2 ترجمه آقای رامین مولاناپور در مورد Provider اکسس صحبت شده و ایشون از دیتابیسی به نام aspnet_template.mdb برای این کار استفاده کردند که میتونید به اون مراجعه کنید و یا با کمی جستجو میتونید پیدا کنید .

SalarSoft
جمعه 27 مهر 1386, 11:30 صبح
چرا وجود دارند ! در کتاب ASP.net 2 ترجمه آقای رامین مولاناپور در مورد Provider اکسس صحبت شده و ایشون از دیتابیسی به نام aspnet_template.mdb برای این کار استفاده کردند که میتونید به اون مراجعه کنید و یا با کمی جستجو میتونید پیدا کنید .
هی توضیه می کنند کتابهای فارسی نخونید برای همینه.

AccessRoleProvider در نسخه بتای dotNET Freamwork قرار داشت که در نسخه نهایی (RTM) حذف شده.
تنها پروایردرهای موجود به طور استاندارد: WindowsToken و SQLServer است.

اگر باز هم اصرار دارید از access استفاده کنید:

اگر مایل هستید که اون رو در database دیگه پیاده سازی کنید، باید هم خود database و هم کلاسهای اون (Provider) رو پیاده سازی کنید.

rtech
جمعه 27 مهر 1386, 12:30 عصر
هی توضیه می کنند کتابهای فارسی نخونید برای همینه.

AccessRoleProvider در نسخه بتای dotNET Freamwork قرار داشت که در نسخه نهایی (RTM) حذف شده.
تنها پروایردرهای موجود به طور استاندارد: WindowsToken و SQLServer است.

اگر باز هم اصرار دارید از access استفاده کنید:

منظور من هم همین بود ، فقط برای اطلاعات بیشتر معرفی کردم .
برای اطلاعات بیشتر در مورد Provider های اختصاصی ، نمونه های آن و دانلود آنها به لینک زیر مراجعه کنید :



http://msdn2.microsoft.com/en-us/asp.net/Aa336558.aspx


یک نمونه از access هم ضمیمه کردم براتون .

programmable
جمعه 27 مهر 1386, 22:52 عصر
منظور من هم همین بود ، فقط برای اطلاعات بیشتر معرفی کردم .
برای اطلاعات بیشتر در مورد Provider های اختصاصی ، نمونه های آن و دانلود آنها به لینک زیر مراجعه کنید :



http://msdn2.microsoft.com/en-us/asp.net/Aa336558.aspx


یک نمونه از access هم ضمیمه کردم براتون .

ممنون از پاسختون

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

ممنون

programmable
جمعه 27 مهر 1386, 23:32 عصر
راستی من از این روش که استفاده میکنم بعد از آپلود سایت وقتی میخوام به صفحه ای برم که مخصوص کاربران هست ( در پوشه Admin) به صفحه mylogin.aspx هدایت میشم . وقتی تو این صفحه یوزر پسورد یه کاربر با نقش Admin که میتونه به این پوشه دسترسی داشته باشه رو میزنم یه پیغام خطا داده میشه مبنی بر اینکه "HTTp internal error 500" .اول فکر کردم کل برنامه کار نمیکنه یعنی الا نمیتونه از دیتابیس اکسس اطلاعات بگیره ولی وقتی یوزر پسورد رو اشتباده زدم پیغام داد که یوزر پسورد شما صحیح نیست!

به نظر شما مشکل از کجاست؟
تو VS سایت بخوبی کار میکنه!
:اشتباه:

programmable
شنبه 28 مهر 1386, 13:27 عصر
یه جونمرد پیدا نشد لطف کنه این دو سوال ما رو پاسخ بده ؟

mp2009
شنبه 28 مهر 1386, 16:56 عصر
دوست عزیز شما باید connectionstring رو برای تک تک پروایدر ها ست کنید
موفق باشید