WebMethod Session

 [WebMethod(EnableSession = true)]
        public static string SayHello()
        { 
             LxUserContext depno = HttpContext.Current.Session["UserContext"] as LxUserContext;
             string depnos = depno.User.Department.ID; 
              .......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using CityMgr;
using CityMgr.Base;

namespace WebApp
{
    /// <summary>
    /// 用户上下文
    /// </summary>
    [Serializable]
    public class LxUserContext
    {
        /// <summary>
        /// 当前用户
        /// </summary>
        public LxPerson User { get; set; }
        /// <summary>
        /// 当前用户拥有的权限列表
        /// </summary>
        public List<LxAuth> HoldAuth { get; set; }
        /// <summary>
        /// 登录时间
        /// </summary>
        public DateTime LoginTime { get; set; }
        /// <summary>
        /// 客户端IP地址
        /// </summary>
        public string IP { get; set; }

        /// <summary>
        /// 验证权限
        /// </summary>
        /// <param name="authId">权限ID</param>
        /// <returns>是否拥有此权限</returns>
        public bool ValidateAuth(string authId)
        {
            return HoldAuth.Contains(new LxAuth() { ID = authId });
        }

        /// <summary>
        /// 验证权限
        /// </summary>
        /// <param name="authIds">权限ID列表</param>
        /// <returns>是否拥有此权限</returns>
        public bool ValidateAuth(string[] authIds)
        {
            bool result = false;
            foreach (var auth in authIds)
            {
                if (HoldAuth.Contains(new LxAuth() { ID = auth }))
                    result = true;
                 break;
            }
            return result;
        }

        /// <summary>
        /// 获取当前用户登录上下文
        /// </summary>
        /// <returns>用户登录上下文</returns>
        [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)]
        public static LxUserContext GetCurUserContext()
        {
            var obj = HttpContext.Current.Session["UserContext"] as LxUserContext;
            obj.User.Department.LoadData();
            return obj;
        }
       
    }
}

 

更多相关文章
一周排行
  • 自定義函數實現NULL值替換
    数据库环境:SQL SERVER 2005 有时候,想将查询查询数来的数据格式化一下,不希
  • 


    		    Linux筆記23.FTP(proftod)
    23.FTP FTP:文件传输协议.FTP服务器能够在网络上提供文件传输服务,远程用户可以
  • <?php /* 郑重说明2015年6月11日4,目前为止MySQL Cluster 社区版不支持INNODB,商业版支持,但是授权价格20W左右,so看此文档之前,考虑下钱MyISAM支持,至于 ...
  • 深入理解javascript原型和閉包(15)——閉包
    前面提到的上下文环境和作用域的知识,除了了解这些知识之外,还是理解闭包的基础. 至于“闭包
  • 现在使用 USB 作为硬件接口的设备是越来越多了,不过它们又有着不同的传输速度,那么我们应该如何去查出或者判断它们的速度到底是多少呢?Temple 这款小工具就可以幫到你了. 运行 Temple 后它会自动侦查当前电
  • 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <iostream> 5 ...
  • 电子书为网友wglzaj精心整理,这批资料下载量好评率都非常高,广受oracle学习者欢迎.文档共整理了12个精品专题和120个热门资料的下载地址,推荐给大家希望大家喜欢. 目录0豆下载地址: http://down
  •  别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针).       正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回类 ...
  • Problem 1032 - 找模式串 Time Limit: 1MS   Memory Limit: 65536KB   Difficulty: Total Submit: 644  Accepted: 323 
  • 原文转自:http://www.csdn.net/article/7/2815450-google-polymer 摘要:开发者Axel Rauschmayer在自己的博客上详解了Google Po ...