PDA

View Full Version : انتقال جداول دیتابیس ASPNETDB.MDF به یک دیتابیس دیگر و کار با آنها به وسیله API Membership , ...



hiran
شنبه 18 تیر 1390, 13:00 عصر
سلام
من نیاز دارم فیلد UserId از جدول aspnet_Users از بانک ASPNETDB.MDF که توسط خود ویژوال استودیو ساخته می‌شود (ASP.NET Configuration) را با فیلد UserId یکی از جداول بانک اطلاعاتی خودم مرتبط کنم. در حقیقت نیاز دارم که از جداول موجود در بانک ASPNETDB.MDF استفاده کنم. فکر می‌کنم برای برقرای ارتباط بین جداول باید تمام جداول در یک دیتابیس باشند و به همین دلیل جداول دیتابیس ASPNETDB.MDF را به دیتابیس خودم انتقال می‌دهم. در این مورد سه تا سوال داشتم. (از ASP.NET 4.0 استفاده می‌کنم.)

با انتقال جداول ASPNETDB.MDF به دیتابیس خودم و حذف ASPNETDB.MDF

1- آیا باز هم از ASP.NET Configuration می‌توانم برای مدیریت کاربران و ... استفاده کنم؟
2- آیا می‌توانم از مجموعه کنترل‌های Login استفاده کنم؟
3- فرض کنیم بخواهیم مدیریت کاربران و ... را از طریق وب‌فرم‌هایی که تهیه می‌کنیم انجام دهیم و سراغ استفاده از API Membership و API Rules ها می‌رویم. با توجه به وجود نداشتن دیتابیس ASPNETDB.MDF آیا این کار امکان پذیر است؟ می‌توان به این توابع گفت به جای استفاده از ASPNETDB.MDF از جداول آن اما در دیتابیس دیگری به جز ASPNETDB.MDF استفاده کنند؟

اگر نمونه‌ کدی در این موارد دارید، ممنون می‌شم که معرفی کنید.

TeacherMath
شنبه 18 تیر 1390, 15:02 عصر
اگر جدول ها را به یک دیتا بیس دیگر انتقال دهید دیگر نمی توانید از کنترلها و membership استفاده کنید برای یافتن دلیل یک دیتابیس ASPNETDB.MDF را نگاه کنید .در این دیتابیس برای هر کاری که membership انجام می دهد sp های پیچیده را اجرا می کند.

Himalaya
شنبه 18 تیر 1390, 16:10 عصر
اگر جدول ها را به یک دیتا بیس دیگر انتقال دهید دیگر نمی توانید از کنترلها و membership استفاده کنیدچرا نمیتونه؟ کار که نشد نداره


با انتقال جداول ASPNETDB.MDF به دیتابیس خودم و حذف ASPNETDB.MDF

1- آیا باز هم از ASP.NET Configuration می‌توانم برای مدیریت کاربران و ... استفاده کنم؟
2- آیا می‌توانم از مجموعه کنترل‌های Login استفاده کنم؟
3- فرض کنیم بخواهیم مدیریت کاربران و ... را از طریق وب‌فرم‌هایی که تهیه می‌کنیم انجام دهیم و سراغ استفاده از API Membership و API Rules ها می‌رویم. با توجه به وجود نداشتن دیتابیس ASPNETDB.MDF آیا این کار امکان پذیر است؟ می‌توان به این توابع گفت به جای استفاده از ASPNETDB.MDF از جداول آن اما در دیتابیس دیگری به جز ASPNETDB.MDF استفاده کنند؟جواب تمام سوالات تو فایل اجرایی aspnet_regsql هستش. یه دیتابیس خالی با هر اسمی که میخوای بساز و بعد از قسمت Start گزینه زیر رو اجرا کن
Microsoft Visual Studio 2010 > Visual Studio Tools > Visual Studio Command Prompt (واسه 2008 هم به همین صورته)
تو پنجره ای که باز میشه دستور aspnet_regsql رو اجرا کن و تو ادامه مشخصات اتصال به سرور sql رو وارد کن و بعد از بخش Database پایگاه داده ای رو که میخوای همه Table ها و Procedure های MemberShip توش ایجاد بشن رو انتخاب کن و Finish.

حالا میخوای به MemberShip دات نت بفهمونی که از این به بعد به جای ASPNETDB.MDF با این دیتابیس کار کن. واسه این کار
اول یه تگ ConnectionString تو فایل Web.config ایجاد میکنی و رشته اتصال مربوط به Database جدید رو تو اون قرار میدی. فرض کنیم اسم این ConnectionString این باشه (MyConnection)
بعد میای یه تگ MemberShip تو فایل Web.config اضافه میکنی و تنظیماتی مثل کدای زیر رو توش قرار میدی (اینو از msdn کپی کردم و خودت بخشهایی که لازم داری رو توش دستکاری کن. من فقط بخش ConnectionString رو تغییر دادم)


<system.web>
<membership
defaultProvider="AspNetSqlMembershipProvider"
userIsOnlineTimeWindow="15">
<providers>
<add
name=" AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MyConnection"
passwordAttemptThreshold="5"
passwordAttemptWindow="10"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
passwordFormat="Hashed"
description="Stores and retrieves membership data from
the local Microsoft SQL Server database."
/>
</providers>
</membership>
</system.web>

قسمت connectionStringName نشون میده که ممبر شیپ باید کارها رو روی چه دیتابیسی انجام بده.
از این به بعد میتونید از ممبر شیپ به همون صورت قبل استفاده کنید ولی این بار روی دیتابیس خودتون.
حالا میتونید جدول خودتون رو هم بهش اضافه کنید.
(البته اگه بخوای تو Table ها یا Procedure های خود ممبر شیپ (که به دیتابیستون اضافه کردید) دست ببرید و دستکاریشون کنید
(مثلا از جدولاش ستون کم و زیاد کنید و ...) این یه بحث جداس که به این تاپیک و سوالتون مربوط نمیشه

بخش roleManager رو هم به همین صورت میتونی تو web.config اضافه کنی (البته با تنطیمات خاص خودش)

raziee
شنبه 18 تیر 1390, 16:22 عصر
اگر جدول ها را به یک دیتا بیس دیگر انتقال دهید دیگر نمی توانید از کنترلها و membership استفاده کنید برای یافتن دلیل یک دیتابیس ASPNETDB.MDF را نگاه کنید .در این دیتابیس برای هر کاری که membership انجام می دهد sp های پیچیده را اجرا می کند.
خیر!! اینگونه نیست برادر.

بوسیله Aspnet_regsql.exe (http://msdn.microsoft.com/en-us/library/ms229862%28v=VS.100%29.aspx) میتونید این کار رو انجام دهید.


1- آیا باز هم از ASP.NET Configuration می‌توانم برای مدیریت کاربران و ... استفاده کنم؟
2- آیا می‌توانم از مجموعه کنترل‌های Login استفاده کنم؟
3- فرض کنیم بخواهیم مدیریت کاربران و ... را از طریق وب‌فرم‌هایی که تهیه می‌کنیم انجام دهیم و سراغ استفاده از API Membership و API Rules ها می‌رویم. با توجه به وجود نداشتن دیتابیس ASPNETDB.MDF آیا این کار امکان پذیر است؟ می‌توان به این توابع گفت به جای استفاده از ASPNETDB.MDF از جداول آن اما در دیتابیس دیگری به جز ASPNETDB.MDF استفاده کنند؟
بله امکانپذیر هست.
تنها باید Connection String رو در وب کانفیگ برای Membership and Role تنظیم کنبد.

TeacherMath
شنبه 18 تیر 1390, 18:18 عصر
من هم این را می دونم .اگه سوال را بخوانید فقط نوشته انتقال جدولها .

hiran
شنبه 18 تیر 1390, 19:17 عصر
ممنون از همه دوستان برای راهنمایی‌های عالی‌شان. TeacherMath ببخشید که سوالم را واضح نگفتم.
به نظرم ایده خوبی باشه. مخصوصاً وقتی می‌خواهیم سایت را روی اینترنت پابلیش کنیم. به جای انتقال دو دیتابیس، یک دیتابیس را انتقال می‌دهیم.