PCB 工程系统 模拟windows域帐号登入
一.需求描述:
对于PCB制造企业来说,基本都采用建立共享目享+域名管控权限,好像别的大多数行业都是这样的吧。呵呵
在实际应用中,经常会有这样的问题,自己登入的帐号没有共享目录的权限,但又想通过程序实现访问共享目享的权限
二.应用场景:
1.服务器端:
例1:工程系统提供接口给OMS订单管理系统调用,当销售人员通过OMS系统传文件给工程接口后,需要将销售传的客户文件放到工程部的公共目录中去
但此时服务器端是本地登入,无公共目录访问权限,此模拟windows域帐号登入的正好可以用上了。
2.客户端:
例1: 工程部小A 需从某个公共目录拷贝文件到本机目录,但自己的域帐号无权限,只要小A使用了工程系统,
在工程系统中某个触发点增加模拟windows域帐号登入,即可实现此功能了。
三.代码实现:
string info = "";
try
{
IntPtr admin_token = IntPtr.Zero;
if (WinLogonHelper.LogonUser(ref admin_token) != )
{
using (WindowsIdentity wid_admin = new WindowsIdentity(admin_token))
{
using (WindowsImpersonationContext wic = wid_admin.Impersonate())
{
string[] files = Directory.GetFiles(@"\\192.168.11.11\ShareFiles", "*.tgz"); //获取网盘tgz文件清单
File.Copy(@"\\192.168.11.11\aa.zip", @"e:\a.zip");//将网络盘ZIP拷贝
}
}
}
else
{
info = $"无文件访问权限";
}
}
catch (Exception ex)
{
info = $"异常:\n\r{ex.Message}";
}
public class WinLogonHelper
{
/// <summary>
/// 模拟windows登录域
/// </summary>
[DllImport("advapi32.DLL", SetLastError = true)]
public static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
public static int LogonUser(ref IntPtr phToken)
{
return WinLogonHelper.LogonUser("用户名", "域名", "密码", , , ref phToken);
}
}
PCB 工程系统 模拟windows域帐号登入的更多相关文章
- PCB 模拟Windows管理员域帐号安装软件
在我们PCB行业中,局域网的电脑一般都会加入域控的,这样可以方便集中管理用户权限,并可以对访问网络资源可以进行权限限制等. 由于加入了域控对帐号权限的管理,这样一来很多人都无权限安装软件,比如:PCB ...
- 将Windows系统默认的Administrator帐号改名为我们自定义的名称
将Windows系统默认的Administrator帐号改名为我们自定义的名称.. ---------如何将Administrator帐号改名为我们自定义的名称:Win+R--->>输入g ...
- Samba结合AD实现域帐号认证的文件服务器
准备一台Windows域控制器, 在Samba服务器上安装Webmin图形化管理工具, samba, krb5-user, winbind. 修改/etc/krb5.conf. [logging] d ...
- 3种用组策略将域帐号加入本地管理员组的方法_jinifly_新浪博客
次当前系统域帐号是怎么在第一次登录时,自动加入域客户端本地管理员组的?我猜不外乎就是脚本.计算机策略或虚拟机初始化的自动应答脚本,结果系统的前任同事找到了答案--GPO的用户策略(确切讲是用户首选项) ...
- Windows域帐户
域的直观优点: 1.域帐户可以在任意一台已经加入域的电脑上登录. 2.将域用户组加入到SQL Server登录里,域用户组内所有人员便都可以使用域用户登录数据库,继承相关权限. 3.域用户登录Team ...
- ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法
This step-by-step article demonstrates how an ASP.NET application can use Forms authentication to ...
- 关于 web.config impersonate 帐号模拟
1.模拟 IIS 验证的帐户或用户 若要在收到 ASP.NET 应用程序中每个页的每个请求时模拟 Microsoft Internet 信息服务 (IIS) 身份验证用户,必须在此应用程序的 Web. ...
- 如何在C#程序中模拟域帐户进行登录操作 (转载)
.NET Core .NET Core也支持用PInvoke来调用操作系统底层的Win32函数 首先要在项目中下载Nuget包:System.Security.Principal.Windows 代码 ...
- Chapter 1 Securing Your Server and Network(3):使用托管服务帐号
原文:Chapter 1 Securing Your Server and Network(3):使用托管服务帐号 原文出处:http://blog.csdn.net/dba_huangzj/arti ...
随机推荐
- HDU_1542_线段树【扫描线】
Atlantis Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- xadmin站点管理类
9. Xadmin xadmin是Django的第三方扩展,比使用Django的admin站点更强大也更方便. 文档:https://xadmin.readthedocs.io/en/latest/i ...
- [如何在Mac下使用gulp] 1.创建项目及安装gulp
1.创建项目 2.安装gulp 3.创建gulpfile.js文件 4.运行gulp 创建项目 -创建项目文件夹命名为firstGulp,并在firstGulp目录下运行 npm init .npm ...
- JS练习:切换图片
代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...
- 《零压力学Python》 之 第四章知识点归纳
第四章(决策和循环)知识点归纳 if condition: indented_statements [ elif condition: Indented_statements] [else: Inde ...
- 学习记录--如何将exec执行结果放入变量中?
declare @num int, ) set @sqls='select @a=count(*) from tb ' exec sp_executesql @sqls,N'@a int output ...
- Drop all tables in MySQL database
Drop all tables in MySQL database Answer: MySQL does not have a command for removing all database ta ...
- 【学QT】1 - QT的安装
1.解压文件在/usr/local/下 #tar zxvf qt-x11-free-3.3.8b.tar.gz -C /usr/local 更改文件夹名称为qt #mv /usr/local/qt-x ...
- route 详解
语法: [root@test root]# route [-nee] [root@test root]# route add [-net|-host]目标主机或网域[netmask] [gw|dev] ...
- 洛谷 P3078 [USACO13MAR]扑克牌型Poker Hands
P3078 [USACO13MAR]扑克牌型Poker Hands 题目描述 Bessie and her friends are playing a unique version of poker ...