我正在处理用于访问REST Web服务的自定义Powershell Cmdlet。
Web服务要求我进行身份验证,并且当我这样做时,会返回一个authenticaton令牌,之后我必须包含每个请求中的身份验证令牌。自定义Powershell Cmdlet - 创建隐藏的可访问变量
我面临的问题是我无法以所需的方式存储令牌,所以我可以在身份验证后轻松地在命令中使用它。
我想如果它可以像Connect-MSOLService一样工作。
对于那些不熟悉Office 365 cmdlet的人,我会举几个例子。
的Office 365的cmdlet
$证书= GET-凭证
连接,MSOLService -Credential $证书
GET-MSOLUser
在这个例子中的Get-MSOLUser将返回每个Office 365用户,因为Connect-MSOLService已事先被调用。
我Cmdlet的
$证书= GET-凭证
$令牌=连接,WebService的-Credential $证书
GET-服务器-token $令牌
获取客户端-token $令牌
正如你所看到的,我必须返回令牌并将其存储在一个变量中,并在验证后的每次调用中使用它。
因此,这导致我的问题,我怎么能注入到Powershell会话中的令牌,然后在我的cmdlet /模块中的每个命令中使用它“引擎盖下”?
谢谢你的时间。
我忘了提到的一件事是我正在用C#编写Cmdlet。 我将检查是否有可能在C#代码中向全局变量注入变量。 – Keb
经过一番思考,即使我能够将令牌客栈获取到全局变量,我仍然需要执行Get-Service -token $ token之类的命令,但是感谢您的建议。 – Keb
我只记得PowerShell也有脚本作用域的变量。我只是不知道如何在C#Cmdlet中工作,因为我从来没有写过。是否有一个特定的原因,你正在编写它在C#中,而不是在PowerShell? –