我有一个在Visual Studio中创建的web应用程序。它使用在IIS中的应用程序webpool上配置的服务帐户执行一些powershell的东西。所有这些工作都很好,我能够给一个我想访问网站的本地组赋予权限。
我遇到的问题是,似乎每次页面加载时(点击按钮执行某些操作),它都会再次提示输入证书。凭证又能用了,但我不知道为什么它一直在提示。我猜测是和页面状态有关。
下面的一些代码可能并不适用于眼前的问题,也不确定是否与这个问题有关... 我怀疑是IIS里的东西。如果有人能举个例子说明如何配置,那将会很有帮助。
在IIS中... 我将 "授权规则 "设置为我要访问的组,并且 "认证 "只对Digest认证启用。
如果你需要查看其他部分的代码,请告诉我。
干杯!
protected void Page_Load(object sender, EventArgs e)
{
if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
username = System.Web.HttpContext.Current.User.Identity.Name;
//Not needed cause we use the username for every line written to the log. and because this launches on Pageload to put a lot of extra logged in lines
// Write_logfile("User logged in as: " + username);
if (DebuggingEnabled == true)
{ Result.Text = Result.Text + "\n" + "Logged in user: " + username; }
}
if (DebuggingEnabled != true)
{
if (DelegateInfoBox.Text.Contains("User Aor:"))
{
EnableStuffforUse(true, true);
}
else
{
EnableStuffforUse(false, true);
}
}
//CHeck if the module is loaded already or not..
System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.PowerShell.Commands.ModuleSpecification> issModules = iss.Modules;
var builder = new StringBuilder();
foreach (var result in issModules)
{
builder.Append("\n" + result.Name);
}
if (builder.ToString().Contains("Lync.psd1"))
{
// Result.Text = Result.Text + "\n" + "---- PS Modules Loaded----" + builder.ToString();
}
else
{
//----These two lines below show how you would import a Module from Path----
iss.ImportPSModulesFromPath("C:\\Program Files\\Common Files\\Microsoft Lync Server 2013\\Modules\\Lync");
//Result.Text = Result.Text + "\n" + "--- PS Modules Loaded----" + builder.ToString();
}
// if (DebuggingEnabled != true) { ListBox1.Items.Clear(); };
}
你应该检查 本条.