PC端使用program來CHGUSRPRF
執行CHGUSRPRF命令需要*SECADM 權限,但通常Security部門不允許Grant這個這麼大的權限,爲了達到目的,改用下面的方法
1. Create CL program
注意裏面一定要用MONMSG命令擋住所有錯誤,不然PC端連到AS400的QZRCSRVS job一旦沒有權限或者profile不對會無限產生MSGW的job
2. CRTCLPRGM with USRPRF(*OWNER)
3. CHGOBJOWN this program to a profile(比如 QCRTUSR) with
*SECADM authority
4. EDTOBJAUT this program to allow only user profile to use it
5.使用cwbx.dll
cwbx.StringConverter sc = new cwbx.StringConverter();
AS400System s = new AS400System();
s.Define("AS400HostName");
// s.IPAddress = ipStr;
s.UserID = Constants.ISERIES_USER_NAME;
s.Password = Constants.ISERIES_PASSWORD;
s.PromptMode = cwbcoPromptModeEnum.cwbcoPromptNever;
cwbx.Program p = new cwbx.Program();
cwbx.Command c = new Command();
p.system = s;
p.LibraryName = Constants.ISERIES_InfiniumCustomLibName;
p.ProgramName = Constants.ISERIES_ChangeUserProfileProgramName;
ProgramParameters paras = new ProgramParameters();
paras.Append("@USRPRF", cwbrcParameterTypeEnum.cwbrcInout, 10);
paras.Append("@PWD", cwbrcParameterTypeEnum.cwbrcInout, 10);
paras.Append("@ERRMSG", cwbrcParameterTypeEnum.cwbrcOutput, 500);
userProfileName = userProfileName.Trim();
string userProfile = string.Format("{0}{1}", userProfileName, new string(' ', (10 - userProfileName.Length)));
paras["@USRPRF"].Value = sc.ToBytes(userProfile);
paras["@PWD"].Value = sc.ToBytes(newPassword);
p.Call(paras);
msg = sc.FromBytes(paras["@ERRMSG"].Value).ToString();
6.注意,cwbx.dll只有32bit版本,沒有64bit版本
如果是IIS7,每個web application pool都可以設置Enable 32-bit Applications為true,但悲催的IIS6這個參數是全局性的,會影響到其他web application
To enable IIS 6.0 to run 32-bit applications on 64-bit Windows
1. |
Open a command prompt and navigate to the %systemdrive%\Inetpub\AdminScripts directory. |
2. |
Type the following command: cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true” |
3. |
Press ENTER. |
按上面的命令可以設置該參數為true,但導致的後果就是IIS不再會使用64bit的.Net FrameWork,那些web application直接不能用了。
終結方法是另起一個web service,該web srevice放在允許32bit的IIS上,這樣就行了。
http://www.experts-exchange.com/OS/Miscellaneous/Q_26247446.html
Create CL program called CHANGEUSR
Log on as QSECOFR
Change CHANGEUSER *PGM object owner to QSECOFR using CHGOBJOWN command.
Change program to run under *OWNER authority using CHGPGM command.
EDTOBJAUT on the program and restrict *USE rights to all users that you want to be able to use the program (not *PUBLIC!).
Configuring IIS to Run 32-bit Applications on 64-bit Windows (IIS 6.0)
最新文章
- SQL Server导入数据时“启用标示插入”详解
- App Store有哪些原因会影响app应用上架呢?(分享)
- listview实现点击条目上的箭头展开隐藏菜单。
- H - 放苹果
- c++ 概念及学习/c++ concept&;learning(一)
- PHP开发圣经读书笔记01
- linux和windows下,C/C++的sleep函数
- WPF换肤之八:创建3D浏览效果
- Python学习笔记010_迭代器_生成器
- Linux 创建子进程执行任务
- HDU - 2181 dfs [kuangbin带你飞]专题二
- vxworks下文件读写示例
- Mawawa CSS 学习之旅 Display
- SSM框架中各层的含义和联系
- Lodop获取全部JS代码,传统JS模版的生成
- [P1082][NOIP2012] 同余方程 (扩展欧几里得/乘法逆元)
- Eclipse/myEclipse 代码提示/自动提示/自动完成设置
- 中标麒麟(linux)下Qt调用python
- linux 与 windows 挖门罗币总结
- vue.js手机号验证是否正确