博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Html+JS+PowerShell打造Web版AD管理系统(二)
阅读量:5738 次
发布时间:2019-06-18

本文共 996 字,大约阅读时间需要 3 分钟。

最近发现gihub上早已有人把powershell的restful webapi做好了,而且是自宿主的owin。比上次用到的httplistener健壮许多。貌似还是支持job,runspace的。

过程其实比较简单,html不用变,js只需要把拼装webapi url的地方修改下就好,后台的powershell webapi整个替换掉就ok了。

下载源码,直接生成即可。我用的vs2017。然后就可以直接使用了,唯一的问题就是跨域。

一开始在jquery.ajax用jsop,但debug的响应里能看到返回的json对象,可是ajax就是接收不到,也就无法在页面显示,而且console.log(返回的json对象);里面完全没有responseText

网上搜的大部分都没什么用。

前端不行那就只好改后端了。主要是不想修改人家已经成熟的代码,怕会有问题发生,但没办法。

经过一番研究,最终确定,要在owin中加入跨域的代码:
1.安装 Microsoft.AspNet.WebApi.Cors
2.DynamicPowerShellApi.Owin的Startup.cs 加入 using System.Web.Http.Cors;
3.line116处加入跨域配置 config.EnableCors(new EnableCorsAttribute("", "", "*"));

然后重新生成,就可以了,多了10个警告回头再说- -~,经过测试,跨域问题解决。页面可以正常显示。

今天发现中文无法显示,原来PowerShellRunner.cs的Line123中

? Regex.Replace(psOutput.LastOrDefault().ToString(), @"[^\u0000-\u007F]", string.Empty) 用正则匹配了所有的非拉丁字符并替换成空,会导致英文以外的文字都无法输出。

解决办法改正则

例如 ? Regex.Replace(psOutput.LastOrDefault().ToString(), @"", @"") 什么都不替换就是了

后端基本就是这个样子了,如果大家有更好的方案可以交流下。

至于前端,用了下vue,感觉还是很不错的。组件化真的挺方便。

转载于:https://blog.51cto.com/640006/2086818

你可能感兴趣的文章
DOM基础
查看>>
The user operation is waiting for "Building workspace" to complete
查看>>
【转】段错误调试神器 - Core Dump详解
查看>>
《C#本质论》读书笔记(14)支持标准查询操作符的集合接口
查看>>
创建零时表、表变量
查看>>
Mybatis 示例之 foreach
查看>>
cookie自动登录的实现
查看>>
Mongodb启动命令mongod参数说明
查看>>
如何在英文底图上添加店铺?
查看>>
spring mvc超强的json支持,你自己根本不需要额外的配置。spring mvc都给你配置好了!!!...
查看>>
第一个小程序云笔记通过微信审核分享
查看>>
Selenium的PO模式(Page Object Model)[python版]
查看>>
MySQL: Fabric 搭建 HA
查看>>
Nginx实现多域名证书HTTPS
查看>>
HTML 与 css 的简单学习
查看>>
The_Last_Geass
查看>>
如何保存PDF、Word和Excel文件到数据库中
查看>>
mysql分表
查看>>
ThinkPHP 模型方法 setInc() 和 setDec() 使用详解
查看>>
信用评分及模型原理解析(以P2P网贷为例)
查看>>