آژانس هواپیمایی
pop up

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

شروع موضوع توسط amir_3d_mad ‏27 ژانویه 2008 در انجمن asp , ASP.NET

  1. amir_3d_mad

    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]

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

    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 ی که در بخش مربوطه تعریف کردی.
     
  3. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
  4. amir_3d_mad

    amir_3d_mad Registered User

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

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

    amin_lili کاربر تازه وارد

    تاریخ عضویت:
    ‏24 آپریل 2007
    نوشته ها:
    528
    تشکر شده:
    2
    محل سکونت:
    ای کاش آنجا ...
    خب کلی پروسیجر برای هریک از تیبل های ممبرشیپ وجود داره که باید از بینشون بگردی اونهایی که برای اون کار خاص شما بدرد می خوره رو استفاده کنی . صرفا اضافه کردن فیلدهای جدید به تیبل کافی نیست باید پروسیجر های مربوط به اوت تیبل رو هم بررسی کنی و تغییرات لازم رو درونشون بدی .
     
  6. alireza MX

    alireza MX Registered User

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

    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 بزنید. (این مقاله راه حل مشکل شماست)
     
  9. mehdivk

    mehdivk Registered User

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