Этот ответ является вики-сообществом, чтобы не создавать репутацию, так как это, по сути, доработка ответа DOK. Если вам это нравится, просьба ответить на вопрос DOK.
@ Док, если вы хотите отредактировать свой ответ, чтобы включить что-либо из этого, сделайте это, и я с удовольствием удалю этот ответ. :)
DOK, как уже упоминалось в моих комментариях к вашему ответу (и, возможно, некоторой помощи для вашего собственного решения), вы можете сделать следующее:
#if DEBUG //As mentioned by DOK in the comments. If you set debug to false when building for deployment, the code in here will not be compiled.
protected void Page_PreInit(object sender, EventArgs e)
{
bool inDevMode = false;
inDevMode = bool.Parse(ConfigurationManager.AppSettings["InDevMode"]); //Or you could use TryParse
if(inDevMode)
{
// Fake authentication so I don't have to create a damn Login page just for this.
System.Web.Security.FormsIdentity id = new FormsIdentity(new FormsAuthenticationTicket("dok", false, 30));
string[] roles = { "a" };
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
#endif
Чтобы дополнительно гарантировать, что вы случайно не развернете этот актив, то настройки вашего приложения будут храниться в отдельных конфигурационных файлах (а также в разделе отладки). Если вы используете проекты Web Deployment , то вы можете поместить параметры конфигурации dev в один файл, а файлы live config - в другой (обычно это dev.config и live.config!).
например, в вашем web.config:
<appSettings file="dev.config"/>
В вашем dev.config:
<appSettings>
<add key="InDevMode" value="true" />
</appSettings>
В вашем live.config:
<appSettings>
<add key="InDevMode" value="false" />
</appSettings>