模拟token访问网络共享路径下的文件

情景描述:

访问网络共享路径下的文件时,对齐进行的GetFileAttributesEx、PathFileExists等一系列操作均会失败,返回错误码1326(用户名或密码不正确)

 

问题原因:

因为磁盘映射是和当前账户关联的,当账户登录之后才会存在这个盘符。

当用一个没有权限token的线程去访问,就需要模拟token(模拟能正常访问者的进程token)

 

操作步骤:

1.获取操作进程的id。

2、获取操作进程

3.打开操作进程的token

4.模拟token

 

模拟token操作伪代码:

    HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, TRUE, dProcessID);
    if (NULL == hProcess)
	    return;

    HANDLE hToken = NULL;
    if (OpenProcessToken(hProcess, TOKEN_QUERY | TOKEN_DUPLICATE, &hToken))
    {
	    if (ImpersonateLoggedOnUser(hToken))
	    {
	    }
	    CloseHandle(hToken);
    }
    CloseHandle(hProcess);
    RevertToSelf();

 

访问后端接口,你需要发送 HTTP 请求,其中包括请求路径和身份验证 Token。具体步骤如下: 1. 获取请求路径:根据后端接口的文档或约定,确定要访问的接口的路径。例如,路径可能类似于 `/api/users` 或 `/api/products`。 2. 获取身份验证 Token:身份验证 Token 是一种用于验证用户身份的凭证,通常通过登录或授权流程获取。你可以从后端接口的授权或登录接口中获取 Token。一旦获取到 Token,通常需要将它存储在客户端(例如浏览器的 Cookie 或本地存储)中,并在每个请求中将其作为身份验证头部或参数发送给后端。 3. 发送 HTTP 请求:使用任何适合的方法(例如 AJAX、Fetch、Axios 等)发送 HTTP 请求到后端。确保在请求中包含正确的请求路径和身份验证 Token。以下是使用 Axios 发送 GET 请求的示例代码: ```javascript import axios from 'axios'; // 设置请求的基本路径,如果后端接口有统一的前缀路径,可以在这里设置 axios.defaults.baseURL = 'http://example.com/api'; // 设置身份验证 Token axios.defaults.headers.common['Authorization'] = 'Bearer ' + token; // 发送 GET 请求 axios.get('/users') .then(response => { // 处理响应数据 console.log(response.data); }) .catch(error => { // 处理错误 console.error(error); }); ``` 在上面的示例中,我们使用 Axios 库发送了一个 GET 请求到 `/users` 路径,并将身份验证 Token 添加到请求头部中。你可以根据你的具体需求和后端接口的要求进行相应的调整。 请注意,具体的请求方式(GET、POST、PUT 等)和请求参数(如查询参数、请求体等)可能因你的后端接口而异,你需要根据实际情况进行相应的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值