Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

July 5, 2007 / by Zsolt Soczó

Web.config olvasás medium trust esetén

Internetszolgáltatók shared hosting esetén általában medium trustra állítják be a webappokat, így azok nem tudják szétbabrálni a gépet, az nt secu mellé még a .NET CAS secu is besegít.
Néha ez gondot okoz, pl. a log4net se tudja kiolvasni a konfigját, mert a CAS megakadályozza ebben. Pedig ez nem olyan vészes dolog.

ASP.NET 2.0-ban már meg lehet mondani, hogy egy szekció olvasása okozzon-e CAS Demandot, magyarul, kell-e hozzá erősebb jog, vagy sem. Erről szól a konfig szekció requirePermission attributuma. A háttérben ez a ConfigurationPermission új 2.0-s permissionre épít. A reflector analyze funkciójával megnézve látható, hogy a BaseConfigurationRecord.CheckPermissionAllowed metódus intézi el a kérdést:

[source:c#]
private void CheckPermissionAllowed(string configKey, bool requirePermission, bool isTrustedWithoutAptca)
{
if (requirePermission)
{
try
{
UnrestrictedConfigPermission.Demand();
}
catch (SecurityException exception)
{
throw new SecurityException(SR.GetString(“ConfigurationPermission_Denied”, new object[] { configKey }), exception);
}
}

}
[/source]

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.