我已经成为SO的成员一年了,这是我的第一个问题!
我目前正在C#中开发一个调用PowerShell脚本的WinForms应用程序.它并非旨在成为PowerShell所有功能的综合处理程序,而只是仅使用简单的预先约定的参数类型执行少量脚本.
某些脚本需要提升权限才能成功运行.没问题 - 似乎至少有两种方法:
1.冒充. 应用程序执行授权并在这些凭据下调用powershell.我很早就遇到了问题,因为模拟/提升的用户可能没有权限在用户的本地计算机上调用powershell命令 - 因为本地计算机可能没有相应的ExecutionPolicy,因此提升的用户必须访问注册表以更改此权限.我没有改变权限.这导致我走向:
2.凭证作为变量. 简单.脚本有一个变量,例如:
[PSCredential]$credential
Run Code Online (Sandbox Code Playgroud)
应用程序可以通过提示用户输入此帐户的用户名和密码来提供.
我的问题是:有没有办法从当前登录的用户获取PSCredential对象,作为我的应用程序的某种默认值?
我没有看到任何暗示可以做到这一点的事情,所以如果有人可以淹没我为什么会这样,我会很高兴听到它.如果这有任何帮助,强制应用程序以管理员身份运行是可行的.
谢谢你的时间.
我正在尝试在Kentico(v8.2.x或v9.0)中编写一个适当缓存的单个宏方法,并使用一些公共成员公开POCO.
在Visual Studio中进行调试,我可以看到查询运行正常,并且确切地返回了一个对象实例.此外,使用DebugKentico中的应用程序检查缓存的项目还显示完整的POCO实例数据按预期缓存.
但是,在调用宏时,我似乎只能读取对象的字符串表示形式.
它是一个扩展CurrentUserInfo类型的宏,所以我试图像这样调用它:
{% CurrentUser.ClientStatus() %}
Run Code Online (Sandbox Code Playgroud)
但尝试检索任何嵌套属性失败.
我确信这只是我没有做某事(比如正确注册这些属性).但是从文档中我看到了很多可能的东西.例如:
这是宏本身:
/// <summary>
/// A class containing custom user-extension macros.
/// </summary>
[assembly: RegisterExtension(typeof(CustomUserMacros), typeof(CurrentUserInfo))]
public class CustomUserMacros : MacroMethodContainer
{
/// <summary>
/// Retrieves data regarding user client.
/// </summary>
/// <param name="context">The context.</param>
/// <param name="parameters">The parameters.</param>
/// <returns>Data regarding user client information.</returns>
[MacroMethod(typeof(ClientInfo), "Retrieves client info.", 1)]
[MacroMethodParam(0, "user", typeof(CurrentUserInfo), "The user.")]
public static object …Run Code Online (Sandbox Code Playgroud) 我一直在研究如何做到这一点,所有的例子都是text/html.我已经尝试使用带有POCO C++网络库的JSON实现服务器api休息,但我不确定这是否是正确的方法.
void MyHandler::handleRequest(HTTPServerRequest& request, HTTPServerResponse& response)
{
response.setStatus(HTTPResponse::HTTP_OK);
response.setContentType("application/json");
std::ostream& ostr = response.send();
string send("true");
ostr << send;
response.setContentLength(send.size());
}
Run Code Online (Sandbox Code Playgroud)
最初它是为hmtl连接实现的:
void MyHandler::handleRequest(HTTPServerRequest& request, HTTPServerResponse& response)
{
response.setStatus(HTTPResponse::HTTP_OK);
response.setContentType("text/html");
std::ostream& ostr = response.send();
ostr << "<html><head><title>HTTPTimeServer powered by POCO C++ Libraries</title>";
ostr << "<body><p style=\"text-align: center; font-size: 48px;\">";
ostr << "ConfigHandler";
ostr << "</p></body></html>";
}
Run Code Online (Sandbox Code Playgroud)
我是否正确地完成了更改或者我错过了什么?
如果有人知道如何使用带有POCO C++库的JSON构建API REST的教程,我们将非常感激.
提前致谢.
我最近在我的代码中遇到一个错误,我试图将枚举标志"拆除"到其组成值的数组中,但有时会返回意外的结果.
长话短说,分配给我的值的某些整数类型似乎会导致一些意外的行为(至少对我来说).我将问题归结为以下单元测试:
public enum TestEnum
{
ITEM1 = 30104,
ITEM2 = 30201,
}
[TestClass]
public class EnumFlagTest
{
[TestMethod]
public void SanityCheck()
{
var flag2 = TestEnum.ITEM2;
Assert.IsFalse(flag2.HasFlag(TestEnum.ITEM1));
}
}
Run Code Online (Sandbox Code Playgroud)
我没想到flag2会报告它"有旗帜" ITEM1,因为我不相信它.
我想这与我分配给项目的Int32值有关,但请有人解释一下发生了什么? - 为什么这个测试失败了?
我们在 IIS 上有一个 ASP.NET 网站。我们有一个Lead Forensics链接。在切换到在所有页面上都要求 SSL 之前,它一直工作正常。它类似于:
<script type="text/javascript" src="http://lead-123.com/js/8303.js"></script>
Run Code Online (Sandbox Code Playgroud)
然而,由于需要 SSL,跟踪似乎不再有效。
显然这是由http从原始https页面链接的请求引起的。但以下两次尝试也失败了:
src="//lead-123.com/js/8303.js"
src="https://lead-123.com/js/8303.js"
访问跟踪脚本的 https URL 表明它正在被提供(尽管存在安全错误)。
我相信 Lead Forensics 已经考虑过这一点。有谁知道是否有任何可以以某种方式使用的约定或变通方法,以便不会在站点上报告安全错误并进行跟踪工作?我找不到任何关于此的文档,并且迄今为止尝试与他们联系还没有成功。
**
我不确定脚本是否托管在https链接上。(它仅在我成功收到来自http链接的响应后才在我的浏览器中响应)。尽管如此,我仍在寻找关于如何处理这种情况的约定,或者如果使用 SSL,是否提供单独的链接,或者该技术是否甚至能够通过 SSL 工作。
c# ×3
.net-4.0 ×1
asp.net ×1
c++ ×1
credentials ×1
enums ×1
https ×1
json ×1
kentico ×1
powershell ×1
rest ×1
ssl-security ×1