zoukankan      html  css  js  c++  java
  • ASP.NET中模拟管理员用户提升权限

    在asp.net的站点中需要调用本地EXCEL的COM组件,由于NetworkService用户的权限不够,在执行Shapes.AddPicture方法(图片大于33K左右)时会长时间无响应,需要用administrator用户来启动Excel进程才行。

    上网查了一些资料,发现可以利用advapi32.dll来在asp.net应用中模拟administrator用户来启动Excel的进程,这样执行Shapes.AddPicture方法就正常了。

    模拟用户的代码如下:

    using System.Runtime.InteropServices;
    using System.Security.Principal;
    using System.Security.Permissions;
    
    
    private const int LOGON_TYPE_INTERACTIVE = 2;
    private const int LOGON_TYPE_PROVIDER_DEFAULT = 0;
    [DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    static public extern bool LogonUser(string userName, string domain, string password, int logonType, int 
    
    logonProvider, ref IntPtr accessToken); 
    
    
    public ExcelExport(string tableName)
    {
        IntPtr accessToken = IntPtr.Zero;
        if (LogonUser("administrator", "domain", "password", LOGON_TYPE_INTERACTIVE, LOGON_TYPE_PROVIDER_DEFAULT, ref 
    
    accessToken))
        {
    
            using (WindowsIdentity identity = new WindowsIdentity(accessToken))
            {
                using (WindowsImpersonationContext context = identity.Impersonate())
                {
                    this.m_tableName = tableName;
                    if (ExcelRS == null)
                    {
                        ExcelRS = new Microsoft.Office.Interop.Excel.ApplicationClass();
                        ExcelRS.Visible = false;
                        ExcelRS.DisplayAlerts = false;
                        ExcelRS.Interactive = false;
                        ExcelRS.DisplayInfoWindow = false;
                    }
                }
            }
        }
    }
    
  • 相关阅读:
    在Ubuntu下安装软件
    HIVE Thrift Server使用总结
    用Wubi来安装Ubuntu 12
    linux命令总结
    Linux Sed简介
    Linux批量重命名文件
    算法学习的轨迹(转)
    写入es速率优化
    走近Flex组件系列(三):按扭组件(Button,CheckBox,LinkBar,LinkButton,PopUpButton,RadioButton,ToggleButtonBar)
    走近Flex组件系列(二):简单实用的Alert组件
  • 原文地址:https://www.cnblogs.com/wang_yb/p/1735748.html
Copyright © 2011-2022 走看看