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

نام تاپیک: ایجاد سطح دسترسی برای فرم ها و کنترلها

  1. #1
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    ایجاد سطح دسترسی برای فرم ها و کنترلها

    با سلام
    من سعی می کنم در چند پست این موضوع را تشریح کنم :
    ابتدا چند نکته که لازم است مد نظر قرار گیرد :
    - هر فرم در دات نت می تواند برای سطوح دسترسی مورد هدف واقع شود و خاصیت نام فرم و یا خاصیت Tag یک مشخصه Uniq است که می تواند بعنوان کلید ارتباط باین فرم و بانک اطلاعاتی قرار گیرد
    - چون نام فرم می تواند در آتی توسط برنامه نویس عوض شود یک راه مناسب استفاده از وراثت فرمها است (حرفه ای)
    - برای دسترسی به اجزای یک فرم مشابه نام کنترل یا Tag نیز Uniq است و می تواند بعنوان کلید آیتم بین فرم و بانک اطلاعات مورد استفاده قرار گیرد
    - در طراحی نرم افزارهای کاربردی برمبنای نام کاربری و رمز عبور عموما یک جدول کاربران با حداقل سه فیلد مورد نیاز است
    - در طراحی حرفه ای تر چون یک کاربر یک شی از کلاس نقش ها می باشد بنابراین یک جدول بنام نقش ها نیز به مجموعه افزوده می شود
    - خاصیت Tag در کلیه اشیا از جمله فرم و کنترل و ... می تواند بعنوان مشخصه دات نت و بانک اطلاعاتی مورد استفاده قرار گیرد

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سطح دسترسی

    با سلام
    بخش دوم :
    با توضیحان ارائه شده برای ساده تر شدن مسئله فعلا حالت ذیل مد نظر قرار میگیرد ولی در صورت تمایل موضوع نقش و وراثت را نیز تشریح خواهم کرد :
    - از جدول کاربران به تنهائی استفاده می شود
    - از خاصیت Tag برای ارتباط با بانک اطلاعاتی استفاده می شود
    با این توضیحات معماری جداول بانک اطلاعاتی به شرح ذیل خواهد بود :

    جدول کاربران :
    - کلید کاربر احتمالا 2 بایتی (PK)
    - مشخصه کاربر حدودا" 50 بایت و به لاتین
    - نام فارسی کاربر حدود 200 بایت
    کلمه عبور به طول دلخواه (Encrypt شده یا Free باتوجه به حساسیت پروژه)

    نکته : ایندکس Uniq روی مشخصه فرم فراموش نشود

    جدول دسترسی به فرم توسط کاربر :
    - کلید فرم که در خاصیت Tag قرار دارد 2 بایت (PK)
    - کلید کاربر 2 بایت
    نکته : ایندکس روی به ترتیب کلید کاربر و کلید فرم فراموش نشود


    جدول اشیاء قابل دسترس برای کاربر روی هر فرم :
    - کلید فرم 2 بایت
    - ID کنترل روی فرم که در خاصیت Tag قرار دارد معادل 2 بایت

    نکته : ایندکس روی به ترتیب کلیدفرم و ID کنترل فراموش نشود


    لطفا دوستان تا اینجا جداول را طراحی و منتظر پیاده سازی در بخش #C باشند
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 20 بهمن 1394 در 18:43 عصر

  3. #3
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سطح دسترسی

    با سلام
    بخش سوم :
    پروژه ای که قرار است سطوح دسترسی برای آن مدیریت شود بصورت ساده به شکل ذیل است فعلا هیچ کد خاصی ندارد و نکته این است که همه فرم ها از فرمی بنام InheritForm ارث بری کرده اند که در آینده تشریح خواهم کرد که به چه علت از این روش استفاده میگردد :
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar UA.rar‏ (118.7 کیلوبایت, 14 دیدار)
    آخرین ویرایش به وسیله Mahmoud.Afrad : سه شنبه 20 بهمن 1394 در 18:49 عصر

  4. #4
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سطح دسترسی

    سلام
    بخش چهارم :
    Script معماری بانک به شکل ذیل است :

    USE [HA]
    GO
    /****** Object: Table [dbo].[Users] Script Date: 06/03/2014 15:44:42 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[Users](
    [UserID] [smallint] NOT NULL,
    [UserCode] [varchar](50) NOT NULL,
    [UserName] [nvarchar](200) NOT NULL,
    [UserPass] [varchar](50) NOT NULL,
    CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
    (
    [UserID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    SET ANSI_PADDING OFF
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلید کاربر' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Users', @level2type=N'COLUMN',@level2name=N'UserID'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'مشخصه لاگین' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Users', @level2type=N'COLUMN',@level2name=N'UserCode'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'نام فارسی کابر' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Users', @level2type=N'COLUMN',@level2name=N'UserName'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلمه عبور' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Users', @level2type=N'COLUMN',@level2name=N'UserPass'
    GO
    /****** Object: Table [dbo].[Forms] Script Date: 06/03/2014 15:44:42 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Forms](
    [FormID] [smallint] NOT NULL,
    [UserID] [smallint] NOT NULL,
    CONSTRAINT [PK_Forms] PRIMARY KEY CLUSTERED
    (
    [FormID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلید فرم' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Forms', @level2type=N'COLUMN',@level2name=N'FormID'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلید کاربر' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Forms', @level2type=N'COLUMN',@level2name=N'UserID'
    GO
    /****** Object: Table [dbo].[Objects] Script Date: 06/03/2014 15:44:42 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Objects](
    [FormID] [smallint] NOT NULL,
    [ObjectID] [smallint] NOT NULL
    ) ON [PRIMARY]
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلید فرم' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Objects', @level2type=N'COLUMN',@level2name=N'FormID'
    GO
    EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'کلید شی درون فرم' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Objects', @level2type=N'COLUMN',@level2name=N'ObjectID'
    GO
    /****** Object: ForeignKey [FK_Forms_Users] Script Date: 06/03/2014 15:44:42 ******/
    ALTER TABLE [dbo].[Forms] WITH CHECK ADD CONSTRAINT [FK_Forms_Users] FOREIGN KEY([UserID])
    REFERENCES [dbo].[Users] ([UserID])
    GO
    ALTER TABLE [dbo].[Forms] CHECK CONSTRAINT [FK_Forms_Users]
    GO
    /****** Object: ForeignKey [FK_Objects_Forms] Script Date: 06/03/2014 15:44:42 ******/
    ALTER TABLE [dbo].[Objects] WITH CHECK ADD CONSTRAINT [FK_Objects_Forms] FOREIGN KEY([FormID])
    REFERENCES [dbo].[Forms] ([FormID])
    GO
    ALTER TABLE [dbo].[Objects] CHECK CONSTRAINT [FK_Objects_Forms]
    GO


    و دیاگرام ارتباط نیز به شکال ذیل :
    عکس های ضمیمه عکس های ضمیمه

  5. #5
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سطح دسترسی

    سلام
    بخش پنجم :
    خوب براساس موضوعات مطرح شده تغییری در معماری بانک ایجاد کردم تا موضوع نقش هم وارد پروژه شود بنابراین معماری جدید به شرح ذیل است :
    عکس های ضمیمه عکس های ضمیمه

  6. #6
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: سطح دسترسی

    سلام
    بخش ششم :
    از این لحظه به بعد من سورس #C را پیوست خواهم کرد ولی قبل از آن لطفا به نکات ذیل توجه کنید که منطق ارائه شده از اصول چهارگانه OOP بسیار استفاده شده است و موضوعات ذیل را خواهید دید :
    - وراثت کلاسها
    - متد Overloading
    - موضوع Down Cast و Up Cast
    - استفاده از متد ژنریک
    - Recursive
    در پروژه پیوست شما پنج فرم ملاحظه می کنید :
    - فرم پدر که تمامی فرمهای مشمول دسترسی از آن ارث بری می کنند بنام InheritForm
    - فرمهای Form1 و ّForm2 و Form3 و MainForm که از فرم InheritForm ارث بری شده اند
    همچنین :
    برای کنترلها و آیتم هائی که قرار است در دسترسی ظاهر شوند یک مقدار Uniq متناسب با فرم مقدار دهی شده است و هر فرم نیز برای Tag آن یک مقدار در نظر گرفته شده است که در شکل پیوست نمونه ای از آن را مشاهده می کنید
    لطفا بانک اطلاعاتی پیوست را دستی خودتان به اسکیوال سرور اتچ کنید
    درون سورس برنامه ConnectionString خودتات را ست کنید
    سپس برنامه را اجرا و نتیجه را ببینید
    من مقایر پیش فرض در برنامه برای دو نقش و سه کاربر و برای 4 فرم ست کرده ام که شما میتوانید تغییرات خودتان را انجام دهید در ضمن تمام پیچیدگی درون فرم وراثتی است لطفا ملاحظه و نتیجه را منعکس نمائید
    عکس های ضمیمه عکس های ضمیمه
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar UA.rar‏ (402.8 کیلوبایت, 116 دیدار)
    آخرین ویرایش به وسیله ASKaffash : چهارشنبه 14 خرداد 1393 در 22:11 عصر

  7. #7
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: ایجاد سطح دسترسی

    سلام
    اینهم سورس مورد نظر :
    فایل های ضمیمه فایل های ضمیمه
    • نوع فایل: rar UA.rar‏ (402.8 کیلوبایت, 107 دیدار)

تاپیک های مشابه

  1. نمونه برنامه برای تعیین سطح دسترسی به فرم ها
    نوشته شده توسط barname_m708 در بخش Access
    پاسخ: 10
    آخرین پست: دوشنبه 04 آبان 1394, 12:40 عصر
  2. نحوه ایجاد سطح دسترسی برای کاربران؟
    نوشته شده توسط shanamjoojoo در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 2
    آخرین پست: پنج شنبه 15 دی 1390, 17:44 عصر
  3. ایجاد سطح دسترسی برای مدیریت
    نوشته شده توسط binboy در بخش PHP
    پاسخ: 0
    آخرین پست: یک شنبه 05 دی 1389, 17:50 عصر
  4. پاسخ: 9
    آخرین پست: یک شنبه 02 آبان 1389, 10:01 صبح
  5. سطح دسترسی در فرم ها
    نوشته شده توسط rezaei manesh در بخش VB.NET
    پاسخ: 21
    آخرین پست: سه شنبه 16 اسفند 1384, 09:00 صبح

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

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