如何获取access tokenToken

如何自己手工获取百度云盘pcs的Access Token_笔个记_大谋博客
如果你从你的网站后台进行授权时,发现WP2PCS的授权页面无法使用,可以将这个链接拷贝到浏览器地址栏进行访问:在结果页面中你会看到如下图:你会看到这个页面,这不是一个错误页面,把浏览器中的网址URL拷贝到一个txt文档中,找到图中红色圈中的access_token,把“=”后面“&”前面的这串字符挑出来,这就是你的WP2PCS PCS ACESS TOKEN,注意,这是一个密码,要绝对保密。另外测试一下修复BUG之后的ZB版本百度云pcsaccess token_百度百科
access token
本词条缺少概述、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
access token概念
Windows操作系统安全性的一个概念。一个访问令牌包含了此登陆会话的安全信息。当用户登陆时,系统创建一个访问令牌,然后以该用户身份运行的的所有进程都拥有该令牌的一个拷贝。该令牌唯一表示该用户、用户的组和用户的特权。系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。有两种令牌:主令牌和模拟的令牌。主令牌是与进程相关的;模拟的令牌是与模拟令牌的线程相关的。
进程拥有某种令牌就表示它拥有某种特权。什么是特权呢?特权是指用户进程进行各种系统操作的权利。如:关机,加载设备,改变系统时间也是一种特权。可以对用户或用户所在的组授予特权。见图。
WinNT定义的特权
在WinNT.h头文件中定义了这些特权的名称:
#define SE_CREATE_TOKEN_NAME TEXT(&SeCreateTokenPrivilege&)
#define SE_ASSIGNPRIMARYTOKEN_NAME TEXT(&SeAssignPrimaryTokenPrivilege&)
#define SE_LOCK_MEMORY_NAME TEXT(&SeLockMemoryPrivilege&)
#define SE_INCREASE_QUOTA_NAME TEXT(&SeIncreaseQuotaPrivilege&)
#define SE_UNSOLICITED_INPUT_NAME TEXT(&SeUnsolicitedInputPrivilege&)
#define SE_MACHINE_ACCOUNT_NAME TEXT(&SeMachineAccountPrivilege&)
#define SE_TCB_NAME TEXT(&SeTcbPrivilege&)
#define SE_SECURITY_NAME TEXT(&SeSecurityPrivilege&)
#define SE_TAKE_OWNERSHIP_NAME TEXT(&SeTakeOwnershipPrivilege&)
#define SE_LOAD_DRIVER_NAME TEXT(&SeLoadDriverPrivilege&)
#define SE_SYSTEM_PROFILE_NAME TEXT(&SeSystemProfilePrivilege&)
#define SE_SYSTEMTIME_NAME TEXT(&SeSystemtimePrivilege&)
#define SE_PROF_SINGLE_PROCESS_NAME TEXT(&SeProfileSingleProcessPrivilege&)
#define SE_INC_BASE_PRIORITY_NAME TEXT(&SeIncreaseBasePriorityPrivilege&)
#define SE_CREATE_PAGEFILE_NAME TEXT(&SeCreatePagefilePrivilege&)
#define SE_CREATE_PERMANENT_NAME TEXT(&SeCreatePermanentPrivilege&)
#define SE_BACKUP_NAME TEXT(&SeBackupPrivilege&)
#define SE_RESTORE_NAME TEXT(&SeRestorePrivilege&)
#define SE_SHUTDOWN_NAME TEXT(&SeShutdownPrivilege&)
#define SE_DEBUG_NAME TEXT(&SeDebugPrivilege&)
#define SE_AUDIT_NAME TEXT(&SeAuditPrivilege&)
#define SE_SYSTEM_ENVIRONMENT_NAME TEXT(&SeSystemEnvironmentPrivilege&)
#define SE_CHANGE_NOTIFY_NAME TEXT(&SeChangeNotifyPrivilege&)
#define SE_REMOTE_SHUTDOWN_NAME TEXT(&SeRemoteShutdownPrivilege&)
#define SE_UNDOCK_NAME TEXT(&SeUndockPrivilege&)
#define SE_SYNC_AGENT_NAME TEXT(&SeSyncAgentPrivilege&)
#define SE_ENABLE_DELEGATION_NAME TEXT(&SeEnableDelegationPrivilege&)
#define SE_MANAGE_VOLUME_NAME TEXT(&SeManageVolumePrivilege&)
#define SE_IMPERSONATE_NAME TEXT(&SeImpersonatePrivilege&)
#define SE_CREATE_GLOBAL_NAME TEXT(&SeCreateGlobalPrivilege&)
#define SE_TRUSTED_CREDMAN_ACCESS_NAME TEXT(&SeTrustedCredManAccessPrivilege&)
#define SE_RELABEL_NAME TEXT(&SeRelabelPrivilege&)
#define SE_INC_WORKING_SET_NAME TEXT(&SeIncreaseWorkingSetPrivilege&)
#define SE_TIME_ZONE_NAME TEXT(&SeTimeZonePrivilege&)
#define SE_CREATE_SYMBOLIC_LINK_NAME TEXT(&SeCreateSymbolicLinkPrivilege&)
access token取得方法
通过API函数OpenProcessToken 取得进程令牌。其定义如下:
BOOL WINAPI (
__in HANDLE ProcessHandle, //进程句柄。通过GetCurrentProcess函数取得当前进程句柄
__in DWORD DesiredAccess, //要对令牌进行何种操作。如TOKEN_ADJUST_PRIVILEGES用于调整权限
__out PHANDLE TokenHandle //进程令牌句柄
如下代码取得进程的令牌,并告诉系统我们想调整令牌的权限
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES,
&hToken)) {
access token进行操作
TOKEN_ADJUST_DEFAULT
改变令牌所有者、主组或访问控制列表DACL
TOKEN_ADJUST_GROUPS
改变令牌的组属性
TOKEN_ADJUST_PRIVILEGES
enable or disable 令牌的特权
TOKEN_ADJUST_SESSIONID
调整令牌的Session ID。进程需要 SE_TCB_NAME 特权.
TOKEN_ASSIGN_PRIMARY
为进程分配主令牌。需要 SE_ASSIGNPRIMARYTOKEN_NAME 特权
TOKEN_DUPLICATE
TOKEN_EXECUTE
合并 STANDARD_RIGHTS_EXECUTE 和 TOKEN_IMPERSONATE.
TOKEN_IMPERSONATE
附加一个模拟令牌到进程
TOKEN_QUERY
TOKEN_QUERY_SOURCE
查询令牌源
TOKEN_READ
合并 STANDARD_RIGHTS_READ 和TOKEN_QUERY.
TOKEN_WRITE
合并 STANDARD_RIGHTS_WRITE, TOKEN_ADJUST_PRIVILEGES, TOKEN_ADJUST_GROUPS, 和 TOKEN_ADJUST_DEFAULT.
TOKEN_ALL_ACCESS
合并所有可能的操作
access token关联特权
TOKEN_PRIVILEGES令牌特权结构体,该结构体定义了访问令牌所拥有的一系列特权。其原型定义如下:
typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount; //特权数量(的长度)
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; //特权数组
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
其中,Privileges数组类型为 LUID_AND_ATTRIBUTES结构体,其原型定义如下:
typedef struct _LUID_AND_ATTRIBUTES {
LUID L //局部唯一标识符,代表某种特权的Value
DWORD A //Luid的属性,代表特权的属性(Enabled or Disabled)
} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
其特权属性Attributes可以是如下常量:
SE_PRIVILEGE_ENABLED
使特权有效
SE_PRIVILEGE_ENABLED_BY_DEFAULT
使特权默认有效
SE_PRIVILEGE_REMOVED
移除该特权
SE_PRIVILEGE_USED_FOR_ACCESS
取得对象或服务的访问权
access token调整特权
取得特权的LUID值
首先通过LookupPrivilegeValue函数取得某种特权的LUID,通过特权的名称查找特权的LUID。
BOOL WINAPI LookupPrivilegeValue(
__in_opt LPCTSTR lpSystemName, //特权所在的系统名称,NULL表示本地系统
__in LPCTSTR lpName, //特权名称,在WInNT.h 中定义的特权名称
__out PLUID lpLuid //取得的特权的LUID
如下代码取得SE_DEBUG_NAME特权的LUID,并将特权属性设为SE_PRIVILEGE_ENABLED
TOKEN_PRIVILEGES
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tp.Privileges[0].Luid);
tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;
调整令牌特权
AdjustTokenPrivileges函数可以调整令牌的特权。函数定义如下:
BOOL WINAPI AdjustTokenPrivileges(
__in HANDLE TokenHandle, //令牌句柄
__in BOOL DisableAllPrivileges, //是否禁用所有特权,如为TRUE,则忽略NewState参数
__in_opt PTOKEN_PRIVILEGES NewState,//调整为NewState结构定义的特权
__in DWORD BufferLength, //PreviousState 参数的字节大小
__out_opt PTOKEN_PRIVILEGES PreviousState, 可选,调整之前的TOKEN_PRIVILEGES结构体指针
__out_opt PDWORD ReturnLength //可选,返回的结构体的长度
AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL);
access token主令牌
主令牌是由windows内核创建并分配给进程的默认访问令牌。
企业信用信息&&&&微信平台上传多媒体和获取ACCESS_TOKEN
微信平台上传多媒体和获取ACCESS_TOKEN
维系工作平台开发上传多媒体和获取ACCESS_TOKEN,其中有两个类,fileupload是上传多媒体获取mediaid,httptest类是获取accesstoken,运行时请先运行HTTPtest类,填写自己appid和appsecret,获取到accesstoken后,填写到fileupload类里,String sendUrl=&http://file.api./cgi-bin/media/upload?access_token=请在Httptest类里自己获取&type=填写响应类型(image/vdio等)&;即可获取到MediaId
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行

我要回帖

更多关于 怎么获取access token 的文章

 

随机推荐