Карты сайта ASP.NET

У меня была та же проблема. И после тяжелой работы я нашел легкое и полное решение:

  1. Я использую runas для запуска скрипта в учетной записи администратора
  2. Я использую параметр -s в psExec для запуска в системной учетной записи
  3. Внутри PsExec я снова вхожу с учетной записью администратора
  4. Вы можете использовать & amp; для запуска кратных команд
  5. Не забудьте заменить [USERNAME], [PASSWORD], [COMPUTERNAME], [COMMAND1] и [COMMAND2] с реальными значениями

Код выглядит следующим образом:

runas /user:[USERNAME] "psexec -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2]"

Если вы хотите отлаживать свой сценарий на другом компьютере, запустите следующий шаблон:

runas /user:[USERNAME] "psexec -i -e -h -s -u [USERNAME] -p [PASSWORD] \\[COMPUTERNAME] cmd /C [COMMAND1] & [COMMAND2] & pause"
39
задан Paul Ratazzi 22 December 2017 в 18:44
поделиться

1 ответ

Версия Jeff Prosise от MSDN Magazine работает вполне прилично, но это имеет несколько дефектов:

AddNode волнуется со ссылками на внешние сайты в Вашем меню (www.google.com, и т.д.)

Вот моя фиксация в BuildSiteMap():

SiteMapNode node = GetSiteMapNodeFromReader(reader);
string url = node.Url;
if (url.Contains(":"))
{
    string garbage = Guid.NewGuid().ToString();  // SiteMapNode needs unique URLs
    node.Url = "~/dummy_" + garbage + ".aspx";
    AddNode(node, _root);
    node.Url = url;
}
else
{
    AddNode(node, _root);
}

SQLDependency кэширование прохладно, но если Вы не хотите совершать поездку к DB каждый раз свои загрузки меню (для проверки, чтобы видеть, изменилась ли зависимость), и меню не изменяются очень часто, то почему бы не использовать HttpRuntime.Cache вместо этого?

public override SiteMapNode RootNode
{
    get
    {
        SiteMapNode temp = (SiteMapNode)HttpRuntime.Cache["SomeKeyName"];
        if (temp == null)
        {
            temp = BuildSiteMap();
            HttpRuntime.Cache.Insert("SomeKeyName", temp, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
        }
        return temp;
    }
}
15
ответ дан Paul Fleming 22 December 2017 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: