日期:2014-05-17  浏览次数:20401 次

cs文件获取Session报错
共有两个类文件

第一个:WebHttpModule.cs
C# code
using System;
using System.Web;

namespace DBUtility
{
    public class WebHttpModule : IHttpModule
    {
        #region IHttpModule 接口内置方法 -根方法-

        void IHttpModule.Dispose()
        {
            //进行垃圾回收之前进行一些清理工作
        }

        void IHttpModule.Init(HttpApplication Application)
        {
            Application.AcquireRequestState += (Application_AcquireRequestState);
        }

        #endregion

        #region 调用方法

        private void Application_AcquireRequestState(Object source, EventArgs e)
        {
            //获取当前 HttpApplication 应用程序
            HttpApplication Application = (HttpApplication)source;

            #region 禁止非管理员用户访问机密路径文件

            //如果访问者 访问管理员目录 Admin 
            if (Application.Request.Url.LocalPath.Trim().ToLower().IndexOf("/" + System.Configuration.ConfigurationManager.AppSettings["AdminCatalog"].ToString().Trim().ToLower() + "/") != -1)
            {
                //如果访问者 访问的是管理员目录下的 login.aspx 文件的话
                if (Application.Request.Url.LocalPath.Trim().ToLower().IndexOf("/" + System.Configuration.ConfigurationManager.AppSettings["AdminCatalog"].ToString().Trim().ToLower() + "/login.aspx") != -1)
                {
                    //允许访问login.aspx文件
                    return;
                }
                else if (Application.Request.Url.LocalPath.Trim().ToLower().IndexOf("/" + System.Configuration.ConfigurationManager.AppSettings["AdminCatalog"].ToString().Trim().ToLower() + "/css/") != -1)
                {
                    //允许访问css文件夹下内容
                    return;
                }
                else if (Application.Request.Url.LocalPath.Trim().ToLower().IndexOf("/" + System.Configuration.ConfigurationManager.AppSettings["AdminCatalog"].ToString().Trim().ToLower() + "/images/") != -1)
                {
                    //允许访问images文件夹下内容
                    return;
                }
                else if (Application.Request.Url.LocalPath.Trim().ToLower().IndexOf("/" + System.Configuration.ConfigurationManager.AppSettings["AdminCatalog"].ToString().Trim().ToLower() + "/javascript/") != -1)
                {
                    //允许访问javascript文件夹下内容
                    return;
                }
                else
                {
                    //如果访问者 访问的不是管理员目录下的 CSS目录 JavaScript目录 Images目录 Flash目录 login.aspx文件
                    //如果访问者不是管理员的话
                    if (!DBUtility.Permissions.JudgeAdmin())
                    {
                        //将访问者请到404页面上
                        Application.Response.StatusCode = 404;
                        Application.Response.End();
                    }
                    else
                    {
                        //允许管理员访问
                        return;
                    }
                }

            #endregion

            }
        }

        #endregion
    }
}




第二个:Permissions.cs
C# code
using System;
using System.Web;
using System.Web.SessionState;

namespace DBUtility
{
    /// <summary>
    /// 验证管理员、用户各种权限
    /// </summary>
    public class Permissions : IRequiresSessionState
    {
        #region 验证访问者是否是游客身份
        /// <summary>
        /// 验证访问者是否是游客身份
        /// </summary>
        /// <returns>是:true 否:false</returns>
        public static bool PermissionsNull()
        {
            //验证访问者Session["Permissions"]是否为空
            //就是说 访问者 目前是否是游客身份,只有游客身份Session["Permissions"]为空值