html统一管理js,Html+JS+PowerShell打造Web版AD管理系统(二)

Html+JS+PowerShell打造Web版AD管理系统(二)

发布时间:2020-08-04 10:23:40

来源:51CTO

阅读:7157

作者:tliursc

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

https://github.com/DimensionDataCBUSydney/PowerShell.REST.API

过程其实比较简单,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,感觉还是很不错的。组件化真的挺方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值