نمایش نتایج 1 تا 15 از 15

نام تاپیک: اعمال تغییر در App.Conf

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    اعمال تغییر در App.Conf

    سلام .

    من یک نرم افزار دارم که به SQL وصل میشه و Connection String من در App.Conf ذخیره شده است .

    حالا می خواهم یک صفحه تنظیمات در برنامه بزارم که کاربر بتوانید این کانکشن استرینگ که شامل ،

    اسم دیتابیس ، یوزر و پسورد و آدرس سرور و ... هست رو تغییر بده . در واقع دستوری رو می خواهم که از C#‎ بشه اون مقدار رو تغییر داد و در Application Config ذخیره کنه .

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    نا کجا باد
    پست
    813

    نقل قول: اعمال تغییر در App.Conf

    سلام دوست عزیز از
    App.Confاستفاده نکن به جای اون از فایل ini.(فایل text )و یا xml استفاده کن بهتره یک جستجوی بکنی کار با xml و فایل text وجود داره

  3. #3
    کاربر دائمی آواتار merlin_vista
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    نصف جهان
    پست
    1,014

    نقل قول: اعمال تغییر در App.Conf

    @mohammad kafiyan
    میشه دلیل استفاده نکردن از app Config را بگی ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

  4. #4
    کاربر دائمی آواتار p.yazdkhasti
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    http://devnet.ir
    پست
    121

    نقل قول: اعمال تغییر در App.Conf

    سلام
    من با دوستمون کاملا مخالفم. در دات نت به Assembly با نام System.Configuration یک Refrence دهید و سپس از کد زیر استفاده کنید.

    var config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    var conName = "MyConnectionToSqlServer";
    ConnectionStringSettings con = null;
    if (null != (con = config.ConnectionStrings.ConnectionStrings[conName]))
    {
    con.ConnectionString = "Data Source=TestDB;Initial Cataloge=Test;User ID =TestUser;Password=Pass";
    config.Save(ConfigurationSaveMode.Modified);
    }

    در استفاده از این کد به نکات زیر دقت کنید:
    1- در کد خود باید Namespace مربوطه را Import نمایید.

    using System.Configuration;

    2- در صورتی که این کد را در یک نرم افزار Windows Application و یا Console Application تست می کنید باید برای دیدن نتایج اجرای کد نرم افزار را بعد از Build شدن به صورت مستقیم در محلی که نتیجه Build قرار دارد اجرا نمایید و نتیجه را در فایل Config موجود در همان محل مشاهده کنید.
    3- این کد در نرم افزار های تحت وب نیز قابل استفاده است.
    4- فایل Config نمونه برای این کد به صورت زیر است:

    <configuration>
    <connectionStrings>
    <add name="MyConnectionToSqlServer" connectionString="TextToChange"/>
    </connectionStrings>
    </configuration>

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: اعمال تغییر در App.Conf

    نقل قول نوشته شده توسط mohammad kafiyan مشاهده تاپیک
    سلام دوست عزیز از
    App.Confاستفاده نکن به جای اون از فایل ini.(فایل text )و یا xml استفاده کن بهتره یک جستجوی بکنی کار با xml و فایل text وجود داره
    به نظر من امنیت app.conf بیشتر از فایل .ini و یا xml است .

  6. #6
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: اعمال تغییر در App.Conf

    نقل قول نوشته شده توسط p.yazdkhasti مشاهده تاپیک
    سلام
    من با دوستمون کاملا مخالفم. در دات نت به Assembly با نام System.Configuration یک Refrence دهید و سپس از کد زیر استفاده کنید.

    var config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    var conName = "MyConnectionToSqlServer";
    ConnectionStringSettings con = null;
    if (null != (con = config.ConnectionStrings.ConnectionStrings[conName]))
    {
    con.ConnectionString = "Data Source=TestDB;Initial Cataloge=Test;User ID =TestUser;Password=Pass";
    config.Save(ConfigurationSaveMode.Modified);
    }

    در استفاده از این کد به نکات زیر دقت کنید:
    1- در کد خود باید Namespace مربوطه را Import نمایید.

    using System.Configuration;

    2- در صورتی که این کد را در یک نرم افزار Windows Application و یا Console Application تست می کنید باید برای دیدن نتایج اجرای کد نرم افزار را بعد از Build شدن به صورت مستقیم در محلی که نتیجه Build قرار دارد اجرا نمایید و نتیجه را در فایل Config موجود در همان محل مشاهده کنید.
    3- این کد در نرم افزار های تحت وب نیز قابل استفاده است.
    4- فایل Config نمونه برای این کد به صورت زیر است:

    <configuration>
    <connectionStrings>
    <add name="MyConnectionToSqlServer" connectionString="TextToChange"/>
    </connectionStrings>
    </configuration>

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


    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    config.AppSettings.Settings.Remove("ConnectionStri ng");
    config.AppSettings.Settings.Add("ConnectionString" , "Data Source=XP-7,1433;Initial Catalog=NoorAutomation;Integrated Security=True");
    config.Save(ConfigurationSaveMode.Full);
    ConfigurationManager.RefreshSection("appSettings") ;


    اما مشکل اینجا است که تغییرات در app .conf اعمال نمیشه . ، یعنی تنظیمات سایق رو داره . چی طوری باید refresh کرد ؟

  7. #7
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    نا کجا باد
    پست
    813

    نقل قول: اعمال تغییر در App.Conf

    سلام به دوستان من هم قبلا برای ذخیره از فایل app config می خواستم استفاده کنم ولی با مشورت دوستمون Esmail Solhkhah این در انتهای تایپیک راه را پیشنهاد کرده اند(مطالعه کنید) و من استفاده می کنم و مشکلی تا به حال نبوده

    https://barnamenevis.org/showthread.p...&highlight=app

    نمونه دیگر

    https://barnamenevis.org/showthread.p...ght=app+config
    حالا چرا فایل app config امنیتش از xml ,text بیشتره ؟؟؟؟؟؟
    توضیح بدهید یاد می گیریم
    آخرین ویرایش به وسیله mohammad kafiyan : جمعه 18 فروردین 1391 در 00:38 صبح

  8. #8
    کاربر دائمی آواتار p.yazdkhasti
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    http://devnet.ir
    پست
    121

    نقل قول: اعمال تغییر در App.Conf

    نقل قول نوشته شده توسط dev-dev-dev مشاهده تاپیک
    از روش شما استفاده کردم و خیلی خوب کار کرد ، شبه کد زیر رو هم دارم که کار کد شما رو انجام میده


    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(Configur ationUserLevel.None);
    config.AppSettings.Settings.Remove("ConnectionStri ng");
    config.AppSettings.Settings.Add("ConnectionString" , "Data Source=XP-7,1433;Initial Catalog=NoorAutomation;Integrated Security=True");
    config.Save(ConfigurationSaveMode.Full);
    ConfigurationManager.RefreshSection("appSettings") ;


    اما مشکل اینجا است که تغییرات در app .conf اعمال نمیشه . ، یعنی تنظیمات سایق رو داره . چی طوری باید refresh کرد ؟
    سلام
    همان طور که در نکات گفتم شما نمی توانید آن را در محیط Debug محیط VS تست کنید. ابتدا لازم است پروژه را Build نمایید سپس برای اطمینان از این که اشتباه نمی کنید VS را ببندید. سپس در فولدری که EXE پروژه خود را قرار داده اید بر روی EXE کلیک کنید و نتیجه را تست کنید. دلیل اینکه نتیجه را در محیط Debug نمی بینید این است که شما در حقیقت فایل App.config که در محیط Debug کد شما آن را تغییر می دهد باز نمی کنید و فایل App.Config موجود در Visual Studio که یک فایل دیگر است را مشاهده می کنید. این یکی از بهترین روش ها برای این کار است و با روش های ذکر شده توسط دیگران که از App.Config استفاده نشود مخالفم مگر این که دلیل خاصی داشته باشد.

  9. #9
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: اعمال تغییر در App.Conf

    حالا چرا فایل app config امنیتش از xml ,text بیشتره ؟؟؟؟؟؟
    توضیح بدهید یاد می گیریم
    والا من احساس می کنم که چون ماله خود VS هست و با VS تولید میشه و اینکه زمانی که برنامه رو نصب می کنیم دیگه app.conf دیده نمیشه ، پس امنیتش بیشتره .

    حالا درست و یا غلط رو دوستان تشخیص بدند . من این طوری احساس می کنم .

  10. #10
    کاربر دائمی آواتار p.yazdkhasti
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    http://devnet.ir
    پست
    121

    نقل قول: اعمال تغییر در App.Conf

    سلام
    شما می توانید در هر دو روش به صورت امن اطلاعات خود را ذخیره نمایید. ولی با توجه به اینکه فایل Configuration و کتابخانه مرتبط با آن به همین منظور توسط .net framework ارائه شده است دلیلی برای استفاده از راه حل های دیگر در بیشتر موارد وجود ندارد و تنها زمان و هزینه را بالا می برد و نرم افزار را پیچیده تر خواهد کرد.

  11. #11
    کاربر دائمی
    تاریخ عضویت
    تیر 1388
    محل زندگی
    نا کجا باد
    پست
    813

    نقل قول: اعمال تغییر در App.Conf

    اینکه زمانی که برنامه رو نصب می کنیم دیگه app.conf دیده نمیشه
    بیشتر توضیح دهید
    یعنی زمانی که setup می سازی فایل ap.configقابل رویت نیست آیا این کاررا انجام دادید ؟؟؟
    آیا امکان دسترسی به این فایل به صورت دستی وجود نداره؟؟؟؟

  12. #12
    کاربر دائمی آواتار p.yazdkhasti
    تاریخ عضویت
    فروردین 1391
    محل زندگی
    http://devnet.ir
    پست
    121

    نقل قول: اعمال تغییر در App.Conf

    سلام
    شما با استفاده از هر دو روش یعنی استفاده از App.Config و یا فایل متنی برای ذخیره سازی اطلاعات Connection String در صورتی که می خواهید اطلاعات توسط افراد دیگر قابل خواندن نباشد لازم است آن اطلاعات را Encrypt و در نرم افزار خود Decrypt نمایید. البته بهترین روش Authentication برای ارتباط با پایگاه داده (در صورت امکان) استفاده از Windows Authentication است. در این روش مشاهده Connection String توسط کاربر نیز مشکلی ایجاد نخواهد کرد.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: اعمال تغییر در App.Conf

    نقل قول نوشته شده توسط mohammad kafiyan مشاهده تاپیک
    بیشتر توضیح دهید
    یعنی زمانی که setup می سازی فایل ap.configقابل رویت نیست آیا این کاررا انجام دادید ؟؟؟
    آیا امکان دسترسی به این فایل به صورت دستی وجود نداره؟؟؟؟
    بله ، بعد از اینکه با VS یک Setup ساختم و نرم افزار رو از طریق Installer نصب کردم ، دیگه app.conf در بین فایل هام نیست

  14. #14
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: اعمال تغییر در App.Conf

    نقل قول نوشته شده توسط p.yazdkhasti مشاهده تاپیک
    سلام
    شما با استفاده از هر دو روش یعنی استفاده از App.Config و یا فایل متنی برای ذخیره سازی اطلاعات Connection String در صورتی که می خواهید اطلاعات توسط افراد دیگر قابل خواندن نباشد لازم است آن اطلاعات را Encrypt و در نرم افزار خود Decrypt نمایید. البته بهترین روش Authentication برای ارتباط با پایگاه داده (در صورت امکان) استفاده از Windows Authentication است. در این روش مشاهده Connection String توسط کاربر نیز مشکلی ایجاد نخواهد کرد.

    یعنی از نظر مت اگه من با مثلا MD5 بیام Encrypt کنم ، امنیت بیشتر یا برابر با خود APP.CONF هست ؟ . از لحاظ امنیتی شما کدوم رو پیشنهاد می کنید .

    بعد از نظر سرعت چی ؟ از APP.CONF سرعت بیشتری داره یا از یک فایل .ini ؟

    به نظر شما استفاده از StreamReader و StreamWriter برنامه رو سنگین تر و کند تر نمی کنه ؟ ( برای خواندن فایل تنظیمات )

    بعد به نظر شما اگه user , Pass برای کانکشن استرینگ تعریف کنیم بهتر هست و امنیت بیشتر یا Windows Authentication ???

    شما نرم افزار رو تحت شبکه در نظر بگیرید که 20 تا 100 تا کلاینت قرار هست باهاش کار کنه !

  15. #15
    کاربر جدید
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    تهران
    پست
    14

    نقل قول: اعمال تغییر در App.Conf

    از نظر سرعت كه جاي بحث ندارن چون فقط يه بار موقع استارت برنامه لازمه خونده بشه

    از نظر امنيت هم بهتره كه كاربر ها در خود ديتا بيس تعريف بشن تا همه كنترلها دست خودش باشه

    با اين روش فقط كافيه اسم سرور و اسم ديتا بيس تو App.Con ذخيره بشه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •