Click here to Skip to main content
15,895,779 members
Articles / Programming Languages / C#

Application Security Model

Rate me:
Please Sign up or sign in to vote.
3.75/5 (9 votes)
14 May 2008CPOL3 min read 31.4K   192   25  
Article describes an easy and light way to secure access to methods in your application.
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using SecuredLibrary.BusinessObjects;
using SecuredLibrary.Common;
using SecuredLibrary.Controlers.Interfaces;
using SecuredLibrary.Controlers.ViewInterfaces;
using SecuredLibrary.Model.Interfaces;

namespace SecuredLibrary.Controlers
{
    public class DisplayAllObjectsToSecurePresenter : IDisplayAllObjectsToSecurePresenter
    {
        private IDisplayAllObjectsToSecureView view;

        public DisplayAllObjectsToSecurePresenter(IDisplayAllObjectsToSecureView View)
        {
            view = View;
        }

        #region IPresenter Members

        /// <summary>
        /// Initializes view.
        /// </summary>
        public void InitView()
        {
            view.CurrentUser = new User();
            view.Presenter = this;
            view.SecuredMethodList = new List<string>();
        }

        /// <summary>
        /// Refreshes data
        /// </summary>
        public void Refresh()
        {
            //Scan assembly in order to find Methods marked with "MethodSecuredAttribute" and add its full name to view.SecuredMethodList
            Type[] currentTypes = GetType().Assembly.GetTypes();
            for (int i = 0; i < currentTypes.Length; i++)
            {
                Type tempType = currentTypes[i];

                string classFullName = tempType.FullName;

                MethodInfo[] methods = tempType.GetMethods();

                for (int y = 0; y < methods.Length; y++)
                {
                    MethodInfo method = methods[y];
                    object[] tempAttributes = method.GetCustomAttributes(typeof (MethodSecuredAttribute), false);

                    if (tempAttributes.Length != 0)
                    {
                        string methodFullName = classFullName + "." + method.Name;
                        view.SecuredMethodList.Add(methodFullName);
                    }
                }
            }
        }

        /// <summary>
        /// Gets or sets view
        /// </summary>
        public IView View
        {
            get { return view; }
            set { view = (IDisplayAllObjectsToSecureView)value; }
        }

        #endregion
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Poland Poland
ASP.NET Developer since 2004

Comments and Discussions