الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أغير الscope في My.settings في Asp.net 2008

بدأه sscvbnm في 15 يونيو 2009 · 11 رد · 746 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

مشروعي ASP.NET 2008 فريمورك 3.5 مع vb.net أدخلت خصائص إلى setting المشروع من خلال النافذة my project ولكن تفاجأت أن هذه الخصائص جعلت للقراءة فقط ولما بحثت عن الحل قالوا إن علي تقيير الScope للخاصية إلى User بدلاً من Application ولكن للأسف العمود Scope لا يقبل التغيير ولم أتمكن من تحرير قيمته في أي من العناصر فما الحل؟

أنا مبتدئ مع الASP.net ولذلك أواجه مشكلات غبية نسبياً :P

تم تعديل هذه المشاركة بواسطة sscvbnm في 15 يونيو 2009 في 09:35

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

لا أدري إن كان السؤال غير واضح أم أنه فعلاً غير صحيح أو صعب!

لكن تبسيطاً للموضوع: لو كان عندي قيمة لا تتغير إلا من مستخدم واحد على الموقع فأين المكان الأنسب لحفظها إن كنت لا أريد حفظها في قاعدة البيانات؟

أتصور أن settings المشروع هي مكان مناسب لحفظ مثل هذه القيمة وهذا ما أفعله مع تطبيقات الويندوز.. فهل فهم قصدي؟

المشكلة أن الsettings في الasp.net هي للقراءة فقط على مستوى الapp فإذا أردت تحويلها لتصبح على مستوى الuser حتى تصبح قابلة للكتابة لم أستطع تحويلها؟

جزاكم الله خيراً..

تم تعديل هذه المشاركة بواسطة sscvbnm في 17 يونيو 2009 في 10:41

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

#3

البيانات على مستوى اليوزر لا ينصح بتاتاً بتخزينها في الـsettings لأنها (بعكس تطبيقات الويندوز) يتم مشاركتها للجميع. هناك عدة أماكن لحفظ البيانات الخاصة باليوزر: قاعدة البيانات، الـsession، الـcookie ... إلخ. أيها أنسب يعتمد على السيناريو المستخدم و طبيعة هذه البيانات.

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

بارك الله فيك وجزاك الله خيراً على هذه النصيحة..

أخي يبقى السؤال قائماً لو تعرف كيف أجعل الsettings على مستوى الuser؟ :blush:

وشكراً لك..

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

#5

هل تقصد ان القيمة التي تتكلم عنها ينعكس تعديلها على كل المستخدمين ام على مستخدم واحد ,,, ام يقوم بتغييرها مستخدم واحد وتطبق على كل المشروع لاني صراحة لم افهم "my projec"

ما قاله System Down صحيح واضيف عليه ASP.NET Profile Properties

The World Must Be Crazy

#6

الـsettings لا يمكن أن تكون على مستوى اليوزر لأنها أصلاً على مستوى التطبيق فقط. أي أن أي تغيير عليها ينعكس على الجميع و ليس اليوزر وحده.

#7

بإمكانه ان يضعها في الـ web.config ويقوم المستخدم المذكور بتغير قيمتها وقت التشغيل ,,

The World Must Be Crazy

#8

جزاكم الله خيراً..

اقتباس
هل تقصد ان القيمة التي تتكلم عنها ينعكس تعديلها على كل المستخدمين ام على مستخدم واحد

أقصد أنه سينعكس على على كل المستخدمين طبعاً..

اقتباس
أي أن أي تغيير عليها ينعكس على الجميع و ليس اليوزر وحده

هذا ما أريده تماماً؛ وللتوضيح هذا أول عمل لي في تطبيقات الويب ومهمة البرنامج هو قراءة صورة من السيرفر وكتابة كلمة عليها كعلامة مائية ثم إرسالها إلى المستخدم..

طبعاً الكلمة التي ستكتب، ستكتب نفسها على كل الصور ولكل المستخدمين؛ لكن ممكن تطلب الإدارة تغيير هذه الكلمة في أي لحظة فيجب أن يدخل الأدمن ويغير هذه الكلمة من صفحته..

في مثل هذه الحالة لو كنت في تطبيق ويندوز لجعلت الكلمة تحفظ في الsettings ويستطيع الأدمن تغييرها، وهذا ما أريده في تطبيق الويب هذا!

لا يمكن أن أحفظ هذه الكلمة في قاعدة بيانات لأن عملية استرجاعها ستكون أطول وربما أبطأ..

اقتباس
بإمكانه ان يضعها في الـ web.config ويقوم المستخدم المذكور بتغير قيمتها وقت التشغيل

ممتاز، هل من توضيح أكثر أو مثال جزاك الله خيراً..

والسلام عليكم ورحمة الله وبركاته

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

#9
اقتباس
<appSettings>

<add key="WaterMark" value="New" />

</appSettings>

public void Modify(string key, string value)

{

Configuration configuration =WebConfigurationManager.OpenWebConfiguration("~");

AppSettingsSection appSettingsSection = (AppSettingsSection)configuration.GetSection("appSettings");

if (appSettingsSection != null)

{

appSettingsSection.Settings[key].Value = value;

configuration.Save();

}

}

usage

Modify("WaterMark", "New Value");

The World Must Be Crazy

#10

السلام عليكــم ورحمـة الله وبركاتــه ،،

أخي الكريم جزاك الله خيراً؛ هذه تعمل في زمن التنفيذ من خلال vs2008 بشكل جيد لكنها أحيناً تطلب رسالة لتأكيد الحفظ عند إغلاق الصفحة.

أما في زمن التشغيل من خلال iis فإنها لا تعمل بل تظهر الخطأ التالي:

An error occurred loading a configuration file: Access to the path 'C:\inetpub\wwwroot\tmp1\yccb6uxi.tmp' is denied. (C:\inetpub\wwwroot\tmp1\web.config)

المرفق فيه المشروع الذي قمت بتجربة الكود فيه.

على ما يبدو أن علي أن أقوم بحفظ مثل هذه القيم على ملفات نصية في مجلد المشروع كحل لمشكلتي والله أعلم؛ :huh:

والسلام عليكم ورحمة الله وبركاته

WindowsApplication2.rar

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

#11

هذه مشكلة صلاحيات ,, عليك بتعديل الصلاحيات علي المشروع على مجلد المشروع او الملف المعني

The World Must Be Crazy

#12

جزاك الله كل خير؛ الآن تعمل تمام .. icon1.gif

قال صلى الله عليه وسلم: من قال إذا أصبح: رضيت بالله ربا وبالإسلام دينا وبمحمد نبيا فأنا الزعيم لآخذن بيده حتى أدخله الجنة. الصحيحة/2686

مواضيع مشابهة