تم الكتابة في جمادى الثانية 29, 1429 02:15

بسم الله الرحمن الرحيم ...

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

 تطرقنا في الدوينة الماضية إلى الدرس الأول: إنشاء قاعدة بيانات Membership و Role في ASP.NET و اليوم سوف نتطرق إن شاء الله إلى كيفية تعريف الـ Roles و Members في ASP.NET.

في البداية يفترض أنك قمت بانشاء قاعدة البيانات التي سوف نستخدمها كما فعلنا في الدرس السابق الدرس الأول: إنشاء قاعدة بيانات Membership و Role في ASP.NET.

الآن افتح الفجول ستديو 2005 أو 2008 أيهما تشاء ... أنا سوف استخدم النسخة 2005.

الآن انشئ موقع ويب جديد كما في الصورة:

 

اختر اسم الموقع و لغة البرمجة التي سوف تستخدمها، أنا سوف اختار اسم "MyMembershipSite" و سوف اختار لغة سي# في هذا الدرس كما في الصورة:

 

اضغط على الصورة لتكبيرها

 

ثم اضغط على OK ثم اختر View ثم Solution Explorer إذا لم يكن ظاهراً لديك.

بعد ذلك، بزر الفأرة الأيمن اضغط على الـ Solution ثم Add New Item كما في الصورة:

 

ثم من النافذة اختر Web Configration File ثم Add و لا تغير شيء كما في الصورة:

 

اضغط على الصورة لتكبيرها

 

الآن نحتاج أن نضيف ConnectionString إلى قاعدة البيانات التي انشئناها في الدرس الأول.

نضيف الكود التالي داخل Web.Config:

<add name="MyNewDBConnectionString" connectionString="Data Source=[Server];Initial Catalog=MyNewDB;Integrated Security=True" />

و استبدل [server] باسم الجهاز الذي يوجد فيه قاعدة البيانات. و هذا الكود يخبر ASP.NET بأن قاعدة بياناتنا موجودة في الجهاز [server] و سوف نستخدم قاعدة البيانات التي اسمها MyNewDB و سوف نستخدم توثيق وندوز.

و بعد ذلك في System.Web اكتب الكود التالي:

<membership defaultProvider="CustomizedProvider">
    <providers>
 <add name="CustomizedProvider"
       type="System.Web.Security.SqlMembershipProvider"
      connectionStringName="MyNewDBConnectionString"
      applicationName="MyMembershipSite"
      minRequiredPasswordLength="5"
      minRequiredNonalphanumericCharacters="0" />
    </providers>
</membership>


<roleManager enabled="true" defaultProvider="CustomizedRoleProvider">
        <providers>
          <add name="CustomizedRoleProvider"
               type="System.Web.Security.SqlRoleProvider"
               connectionStringName="MyNewDBConnectionString" />
        </providers>
</roleManager>

و هذا الكود يخبر ASP.NET بأننا سوف نستخدم مزود للـ Membership و الذي هو SqlMembership (اي يخزن و يقرأ من SQL) و أخبرناه عن طريق الـ ConnectionString بمكان قاعدة البيانات.  و كذلك الحال بالنسة للـ RoleManager.

و لاحظ أننا كتبنا اسم التطبيق و هذا مهم للغاية لكي لا يحدث لك مشاكل أثناء نشر Deploy الموقع. و لاحظ اننا حددنا بعض القيود و الشروط على كلمة السر، فجعلنا أنه لابد لمستخدمي النظام من استخدام كلمة سر بطول خمسة حروف على الأقل و من الممكن أن تغيرها إلى ما تشاء.

الآن شكل Web.config كالتالي:

 و من الممكن تحميل ملف Web.Config من الرابط في الاسفل و ذلك للتأكد من الخصائص لديك ...

Web.config (2.53 kb)

 

بعد ذلك اضغط على رز ASP.NET Configration كما هو موجود في المربع الاحمر في الصورة أدناه أو اذهب إلى WebSite ثم ASP.NET Configration .

الآن سوف تفتح لك نافذة Internet Explorer مثل هذه:

 

اضغط على الصورة لتكبيرها

 

الآن اذهب إلى الTab العلوي Security كما في الصورة:

 

الآن التوثيق المستخدم في النظام (و ليس قاعدة البيانات) هو وندوز، و نريد ان نغيره إلى Form و يمكننا ذلك عن طريق تعديل Web.Config مباشرة أو الذهاب إلى Select Authentication Type كما في الصورة:

 

ثم اختر الاختيار الأول From the Internet كما في الصورة:

و عندما يتم التغيير و عندما تذهب إلى ملف Web.Config سوف تجد رسالة تشبه هذه:

 

اضغط على الصورة لتكبيرها

 

و هي تفيد بأنه تم تغيير في ملف web.config، ببساطة اضغط على Yes to All. و هذا لأن ASP.NET Web Admin Tool قام بعمل تغيير على web.config عندما غيرنا توثيق ASP.NET إلى Form بدلاً من Windows.

 

و الآن من المفترض أن يكون الشكل كالتالي:

 

اضغط على الصورة لتكبيرها

 

ثم بعد ذلك لنقوم بإنشاء عدد 2 Role و احدة للـ Admin و الأخرى Users. و ذلك عن طريق الضغط على Create or Manage Roles.

ثم ادخل اسم Role و اضغط على Add كما في الصورة:

و بنفس الطريقة اضف Role اخرى باسم UserRole.

و الآن لدينا 2 Role و 0 User.

و على سبيل التجربة اضف عدد 3 مستخدمين عن طريق الرابط Create User. و اجعل واحد باسم Admin في AdminRole و الآخر User في الـ UserRole و الثالث AnyUser و لا تجعله ضمن أي Role كما في الصورة:

اضغط على الصورة لتكبيرها

 

و بعد اضافة الثلاثة مستخدمين سيكون الشكل كالتالي:

 

و في النهاية لو ذهبت إلى قاعدة البيانات عن طريق الـ MS Sql Server Managment Studio  و ذهب إلى قاعدة البيانات MyNewDB و ذهبت إلى الجدول aspnet_Users على سبيل المثال سوف تجد المستخدمين اللذين أضفتهم و كذلك الجدول aspnet_Roles.

 

في الدرس القادم سوف ندخل بشكل أعمق في ASP.NET و استخدام الـ Login Controls و سوف نرى أيضاً كيف يمكننا تحديد صلاحيات على مستوى الصفحة و على مستوى المجلد أيضاً.

 

مع تحياتي ... طلال الحضبي.

Del.icio.usDigg It!DZone It!Reddit


تم الكتابة في جمادى الثانية 24, 1429 01:35

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

 اليوم سوف اتكلم عن مفهوم Membership و Role Management في بيئة ASP.NET...

كثير من الأحيان نحتاج في برامجنا إلى تحديد مستخدمين للنظام(Members)، و هاؤلاء المستخدمين سوف تكون لهم مجموعة من المهام (Roles) و كل مجموعة منهم سوف تكون لهم خصائص و صلاحيات معينة.

على سبيل المثال، يوجد لدينا نظام إدارة مكتب عقاري، سوف تكون هناك صفحات للمستخدم العادي لكي يبحث عن العروض و تفاصيلها و سوف تكون هناك صفحات أيضاً لمسؤول النظام لكي يعمل على إدارة النظام من خلاله "إضافة عروض" على سبيل المثال.

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

هناك طريقتين لعمل ذلك: الأولى هي أن نقوم بهذه المهمة برمجياً و هي معرضه للأخطاء طبعاً. و الأخرى هي استخدام   ASP.NET Membership &  Roles.

في سبيل استخدام هذه الخصائص لابد لك من وسيلة تخزن فيها اسماء المستخدمين و معلوماتهم، و بالتأكيد سوف نستخدم MS SLQ Server.

في البداية، دعونا نقوم بانشاء قاعدة بيانات باسم MyNewDB "طبعاً لابد من استخدام اسم افضل، و انا استخدمت هذه الاسم لدواعي العرض فقط" كما في الصورة:

الآن لدينا قاعدة بيانات فارغة و نريد من ASP.NET بملئ هذه القاعدة بالجداول المطلوبه، و ذلك عن طريق الأداة aspnet_regsql تستطيع الوصول إليها عن طريق:

 Start ثم All programs  ثم  Microsoft Visual Studio 2005 ثم Visual Studio Tools ثم Visual Studio 2005 Command Prompt. كما في الصورة:

اضغط على الصورة لتكبيرها

 

الان سوف تفتح نافذة اكتب فيها aspnet_regsql كما في الصورة:

اضغط على الصورة لتكبيرها

 

الآن سوف تفتح إداة تكون الجداول كما في الصورة:

اضغط على الصورة لتكبيرها

 

اضغط next ثم اختر الخيار الأول للإضافة كما في الصورة:

اضغط على الصورة لتكبيرها

 

و بعد ذلك اضغط على next ثم ثم باختيار اسم سيرفر قواعد البيانات "إذا كانت قواعد البيانات في نفس الجهاز اكتب localhost" و اختر اسم قاعدة البيانات الفارغة التي قمنا بانشائها كما في الصورة:

اضغط على الصورة لتكبيرها

 

و هنا انا استخدمت توثيق  Windows و بالامكان استخدام توثيق SQL إذا رغبت.

بعد ذلك اضغط على next و في النافذة الأخيرة اضغط على Finish كما في الصورة:

اضغط على الصورة لتكبيرها

 

الآن لو تفحصت قاعدة البينات التي انشئتها سوف تجد جداول Tables و View و Stored Procedures قد تم انشائها و كل ذلك للتعامل مع Roles و الـ Members في ASP.NET. كما في الصورة:

 

اضغط على الصورة لتكبيرها

 

في التدوينة القادمة إن شاء الله سوف أتكلم عن استخدام تعريف الـ Roles و Memebership في ASP.NET.

 

بالتوفيق...

Del.icio.usDigg It!DZone It!Reddit


تم الكتابة في جمادى الثانية 20, 1429 16:38

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

 

"هل لدينا ما يكفي من الذرة لإنتاج زيت الذرة ؟" سؤال تبادر إلى ذهني عندما دخلت احد السوبر ماركتات الضخمة في مدينة الرياض ...

وجدت عدد كبير من عبوات زيت الذرة ... من مختلف الأشكال و الأحجام و الدول المصدرة لها ...

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

قمت بعمل بعض البحث في الإنترنت و وجدت أن الزيت يستخرج من نواة حبة الذرة نفسها ... و أن كمية من الذرة تنتج 2.8% من وزنها زيت ذرة ...

و لكن السؤال هل يوجد في العالم هذه الكميات من زيت الذرة لسد الحاجة العالمية لتزويدنا بالزيت؟ طبعاً هذا غير الذرة المأكولة التي نستهلكها ... و غير المعلبة ... و غير محلات بيع كوب ذرة التي انتشرت مؤخراً في الرياض!

طبعاً الذرة هنا كانت مثال، نستطيع أن نعممه على زيت دوار الشمس مثلاً، و كذلك الألبان الموجودة في الأسواق، فهل يوجد لدينا بقر يكفي لسد حاجة المملكة العربية السعودية مثلاً، لنجد هذا العدد الكبير من الألبان و منتجاتها مرصوصة على أرفف التجار؟

 

طبعاً بعد ذلك أخذت أيقنت بأن أكثر ما نستهلكه نحن"الغلابا" هي منتجات صناعية ...

 

 

تحياتي .. طلال.

Del.icio.usDigg It!DZone It!Reddit

التصنيف: عام
البطاقات:

تم الكتابة في جمادى الثانية 14, 1429 08:50

 

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

كما هو في العنوان، نريد ان نبح عن جملة "String" في جدول معين، و لكن المشكلة هي أننا نريد البحث في جميع حقول هذا الجدول و ليس في حقل واحد ... لكي نجعل البحث عام بشكل أكبر ...

الحل هو استخدام الكود التالي، و هو ينشئ Stored Procedure داخل قاعدة البيانات Master باسم sp_FindStringInTable و تقوم هذه الدالة بالبحث عن جمله داخل جدول...

الدالة sp_FindStringInTable تأخذ ثلاثة متغيرات للبحث ... هي:

stringToFind و هي الجملة المراد البحث عنها ...

schema و هي الschema المراد البحث داخلها ...

table و هو الجدول المراد البحث داخله ...

سنقوم كما قلت بانشاء هذه الدالة داخل قاعدة البيانات Master لكي يمكن استخدامها في اي قاعدة بيانات تكون موجودة لديك ...

USE master
GO

CREATE PROCEDURE sp_FindStringInTable @stringToFind VARCHAR(100), @schema sysname, @table sysname
AS

DECLARE @sqlCommand VARCHAR(8000)
DECLARE @where VARCHAR(8000)
DECLARE @columnName sysname
DECLARE @cursor VARCHAR(8000)

BEGIN TRY
   SET @sqlCommand = 'SELECT * FROM ' + @schema + '.' + @table + ' WHERE'
   SET @where = ''

   SET @cursor = 'DECLARE col_cursor CURSOR FOR SELECT COLUMN_NAME
   FROM ' + DB_NAME() + '.INFORMATION_SCHEMA.COLUMNS
   WHERE TABLE_SCHEMA = ''' + @schema + '''
   AND TABLE_NAME = ''' + @table + '''
   AND DATA_TYPE IN (''char'',''nchar'',''ntext'',''nvarchar'',''text'',''varchar'')'

   EXEC (@cursor)

   OPEN col_cursor  
   FETCH NEXT FROM col_cursor INTO @columnName  

   WHILE @@FETCH_STATUS = 0  
   BEGIN  
       IF @where <> ''
           SET @where = @where + ' OR'

       SET @where = @where + ' ' + @columnName + ' LIKE ''' + @stringToFind + ''''
       FETCH NEXT FROM col_cursor INTO @columnName  
   END  

   CLOSE col_cursor  
   DEALLOCATE col_cursor

   SET @sqlCommand = @sqlCommand + @where
   --PRINT @sqlCommand
   EXEC (@sqlCommand)
END TRY
BEGIN CATCH
   PRINT 'There was an error'
   IF CURSOR_STATUS('variable', 'col_cursor') <> -3
   BEGIN
       CLOSE col_cursor  
       DEALLOCATE col_cursor
   END
END CATCH

الآن هذا الكو قام بانشاء الدالة sp_FindStringInTable .

و لكي نستخدمها من الممك ان نستخدم هذا الكود:

USE AdventureWorks
GO
EXEC sp_FindStringInTable '%land%', 'Person', 'Contact'

و لاحظ أننا استخدمنا علامة % و من الممكن أن نستخدم * أيضاً لتحديد البحث بشكل أكبر ...

 

أتمنىأن تكون هذه الدالة مفيدة ...

نصيحة شخصية: لا تستخدم هذا الأسلوب في البحث إلا في الضرورة القصوى، حاول أن تستخدم بحث محدد في حقول و جداول محددة و ذلك لرفع كفائة الإستعلام Query الذي تكتبه.

 

طلال الحضبي.

المصدر: MSSQLTips.com

Del.icio.usDigg It!DZone It!Reddit

التصنيف: SQL Server , قواعد البيانات
البطاقات: ,

تم الكتابة في جمادى الثانية 13, 1429 22:14

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

أخواني أقدم لكم اليوم برنامج (الموسوعة القرآنية)  للجوال بالرسم العثماني + بحث + تفسير الطبري  و تفسير المنتخب ( لعلماء الأزهر ) + أسـباب النزول (للنيسابوري) +  تلاوة.خاص لنوكيا الجيل الثالث ( مثل N95 , N73 , N82 , N81 .......إلخ )

 

مزايا البرنامج:

- النص الكامل للقرآن الكريم و بالرسم العثماني الكامل

- تغيير لون خلفية الشاشة بالضغط على رقم 4  او  رقم 5 لتغيير لون الحركات اما اسود او احمر

-بضغط على الزر الايسر العلوي في الجوال ننتقل الى التفسير

- ويمكنك الانتقال الى التفسير الاخر  بضغط على الزر الايسر العلوي اثناء تواجدك في صفحة التفسير كما في الصوره التاليه

 

-كما يمكنك البحث في القرآن بجذر الكلمة

 

تحميل البرنامج
عند تحميل البرنامج تجد اربع ملفات
ثبت البرنامج الرئيسي  ( القرآن )  ( على ذاكرة الهاتف )
ثم ثبت باقي الملفات  لايهم الترتيب ( على ذاكرة البطاقة)

 

ملاحظه مهمه :
عن التثبيت بيطلع لك رساله تقول ان الشهاده منتهية

لتخطي الرساله  رجع تاريخ جوالك لعام 2007 وبعد ماتخلص مثبت البرنامج رجع التاريخ الى وضعه الاول
طريقة ترجيع التاريخ
الأدوات ثم  الضبط  ثم  عام ثم التاريخ و الوقت

تثبيت البرنامج من هنا

almwsw3h.zip (1.88 mb)

 

مع تحياتي ... طلال.

Del.icio.usDigg It!DZone It!Reddit


البحث



إخلاء مسؤولية
جميع الآراء التي تم التعبير عنها هنا هي آرائي الشخصية وهذه الاّراء لا تمثل وجهة نظر عملي على أي حال.
© جميع الحقوق محفوظة 2008 مدونة طلال
Sign in