برگزیده های پرشین تولز

برقراری ارتباط sqlserver با سرویس membership در asp.net2

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
سلام . ببخشید اگه تاپیک تکراری باشه !
من میخوام از سرویس membership خود asp.net2 استفاده کنم .
ولی هر کاری میکنم ، نمیتونم ارتباط دیتابیس sqlserver2005 رو با اون برقرار کنم .
یعنی موقع اضافه کردن کاربر ، بجای اینکه اون کاربر در جدول تعریف شده من ذخیره بشه ، یک دیتابیس تو پوشه app_Data ایجاد میشه و اون کاربر رو در دیتابیسی که خودش ساخته اضافه میکنه !
البته من تمام تنظیمات مربوط به این کار رو انجام دادم و حتی با برنامه خود .NetFramework هم جداول مورد نیاز برای این کار رو توی دیتابیس خودم ایجاد کردم و ConnectionString مربوط به اونو در فایل web.cofug ذخیره کردم !
تنظیمات web,config به این شکله :
کد:
[LEFT]<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="---" />
  </connectionStrings>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="login.aspx"
        name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>
    <membership defaultProvider="SqlProvider"
      userIsOnlineTimeWindow="15">
      <providers>
        <add 
          name="SqlProvider" 
          type="System.Web.Security.SqlMembershipProvider" 
          connectionStringName="SqlServices"
          applicationName="MyApplication"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="true"
          requiresUniqueEmail="false"
          passwordFormat="Hashed"
          maxInvalidPasswordAttempts="5"
          passwordAttemptWindow="10" />
      </providers>
    </membership>
  </system.web>
</configuration>[/LEFT]

نمیدونم کجای کدم اشکال داره ؟ ؟ ؟
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
برای اینکه به ASP.net بفهمونی که باید از پایگاه داده شما استفاده کنه اول باید بری و با استفاده از ابزار aspnet_regsql.exe اون جداول و SP ها را به پایگاه داده خود منتقل کنی که این کار رو کردی
سپس باید بری تو بخش Connection String یک ConnectionString به پایگاه داده مد نظر خودتون درست کنید بعد تو بخش membership فایل web.config یک Provider جدید به شکل زیر تعریف کنی :
کد:
    <membership defaultProvider="MyProvider">
      <providers>
        <add name="MyProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MainConnectionString"/>
      </providers>
    </membership>

که در واقع MainConnectionString همون ConnectionString ی که در بخش مربوطه تعریف کردی.
 

amir_3d_mad

Registered User
تاریخ عضویت
4 ژوئن 2007
نوشته‌ها
98
لایک‌ها
0
ممنون دوستان .
مشکل ارتباط با دیتابیس حل شده .
فقط دو تا سوال برام پیش اومده :
یکی اینکه توی web.config برای اعمال تغییرات روی سیستم membership ، یه منبع خوب سراغ دارین ؟؟؟ تغییراتی مثل ماکزیمم طول پسورد و ... . من یه جایی دیده بودن ، ولی الان نمیتونم پیداش کنم !

و یکی هم اینکه برای ذخیره کردن اطلاعات اضافی از کاربران ، مثل روز تولد ، شماره تماس ، وب سایتشون و ... ، چه تغییراتی و در کجای برنامه باید اعمال بشه ؟ چون میدونم که با اضافه کردن ستون های مورد نیاز به دیتابیس ، یه قسمتی از کار انجام میشه ، ولی چطوری باید این اطلاعات از کاربر گرفته بشه و در دیتابیس ذخیره بشه ؟
و اگه موقع لاگین کاربر ، بخوام یکی از اطلاعات مربوط به اون کاربر رو از جدول در بیارم ، از چه دستور یا ابزاری باید استفاده کنم ؟
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
خب کلی پروسیجر برای هریک از تیبل های ممبرشیپ وجود داره که باید از بینشون بگردی اونهایی که برای اون کار خاص شما بدرد می خوره رو استفاده کنی . صرفا اضافه کردن فیلدهای جدید به تیبل کافی نیست باید پروسیجر های مربوط به اوت تیبل رو هم بررسی کنی و تغییرات لازم رو درونشون بدی .
 

alireza MX

Registered User
تاریخ عضویت
18 فوریه 2006
نوشته‌ها
50
لایک‌ها
0
من تمام این کارا را کردم یعنی جداول و SP ها رو به DB خودم اضافه کردم.حالا من خودم یه جدول USER دارم که اطلاعات اضافی کاربرا رو نگه می داره.چه جوری میشه وقتی با کنترل های LOGIN یه کاربر جدید ثبت نام میکنه هم به خود دیتا بیس ASP و هم به جدول خودم اضافه بشه و چه جوری وقتی با کنترل های LOGIN (مثل کاربری که الان ONLINE هست) کار میکنم و از رکورد اون کاربر استفاده میکنم بتونم بفهمم کدوم کاربر از جدول خودمه و بقیه اطلاعاتشو از اون بخونم.؟
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
دوست عزیز تا اونجا که من از پست شما متوجه شدم شما برای اینکه اطلاعات اضافی کاربرهای خودتون را بتونید ذخیره کنید یک جدول جدید ایجاد کرده اید و اطلاعاتی نظیر وب سايت ، تاریخ تولد و غیره را در این پایگاه ذخیره می کنید ، توسعه دهندگان ASP.net هم به این موضوع فکر کردند و راه حلی خیلی بهتری نسبت به آنچه شما استفاده کرده اید پیشنهاد می دهند ، شما می توانید با استفاده از مفهوم Profile که بهمراه Membership هست برای این کار استفاده نمائید ، روش کار بدین صورت است که شما فیلد های که مدنظرتان هست و جنس آنها را در فایل Web.config شاخه Root پروژه خود اضافه می کنید و از این پس این فیلدها هم جزء فیلدهای اطلاعاتی کاربران شما بحساب می آیند و در کلاس Membership هم این فیلدهای اطلاعاتی اضافه خواهند شد . در مورد منابع آقای Scott Mitchell یک سری مقاله در مورد Membership , Profile ها دارد که بسیار کامل است و از آنجا که ایشان یکی از آموزش دهندگان توانا در ASP.net هستند و خود مایکروسافت هم در سايت رسمی تکنولوژی ASP.net از مقالات ایشان استفاده می کند بهتر است یک سری به مقاله های ایشان در سايت 4GuysFromRolla.com بزنید. (این مقاله راه حل مشکل شماست)
 

mehdivk

Registered User
تاریخ عضویت
5 آپریل 2006
نوشته‌ها
319
لایک‌ها
0
در رابطه با چگونگی دسترسی به اطلاعات ذخیره شده در پایگاه داده هم می توانید از کلاس Membership استفاده نمائید ، کتاب Sams ASP.net 2.0 Unleashed هم بخش نسبتا خوبی برای این کار دارد
 
بالا