Security Exception

Topics: ASP.NET 2.0
May 29, 2007 at 8:03 AM
Hi,
first: this is a great project and is written in a very clean way making it easy to understand everything in the code.
But I cannot make it run... It runs smooth on my machine, but when I copy it on the server it gives me a System.Security.SecurityException (please look at the complete error page at http://aexbeta.testdotnet2.aruba.it). I know this could be a "trust" issue, but I cannot manage the server (is a low cost service...) and I cannot change to another provider. Is there a way to modify BlogEngine in order to make it run anyway? Which operation is "not allowed by the security policy"?

Thanks in advance to everyone
Jack

Coordinator
May 29, 2007 at 2:07 PM
In web.config, set the trust level from High to Medium
May 30, 2007 at 8:46 AM

madskristensen wrote:
In web.config, set the trust level from High to Medium


Hi, thanks for your answer.
I already tried to change the trust level, but "...the site administrator has locked access to this section using <location allowOverride="false"> from an inherited configuration file.". At least unpleasant.
In a early version of BlogEngine I solved the problem commenting out the trust level line in web.config, but it doesn't work with this release.

Thanks again :)
May 30, 2007 at 8:37 PM
I had the same problem and not really the time to go deep into the problem.
What I did was some changes in the 'BlogService.cs', recomplied and exchanged the dll (thank goodness for open source....):
    private static void LoadProviders()
    {
      // Avoid claiming lock if providers are already loaded
      if (_provider == null)
      {
        lock (_lock)
        {
          // Do this again to make sure _provider is still null
          if (_provider == null)
          {
            // Get a reference to the <blogProvider> section
            //BlogProviderSection section = (BlogProviderSection)WebConfigurationManager.GetSection("BlogEngine/blogProvider");
 
            // Load registered providers and point _provider
            // to the default provider
            //_providers = new BlogProviderCollection();
            //ProvidersHelper.InstantiateProviders(section.Providers, _providers, typeof(BlogProvider));
              _provider = new Providers.XmlBlogProvider();//_providers[section.DefaultProvider];
 
            if (_provider == null)
              throw new ProviderException("Unable to load default BlogProvider");
          }
        }
      }
    }

This will hard-code the BlogEngine.Core.dll to use the XMLBlogProvider, not so good maybe, but it worked for me.....
May 31, 2007 at 8:14 PM
Great! It works now! Thank you very much goranh.
I still have problem with the blog roll (it seems that I cannot perform a "WebRequest.Create"), but I don't need it at all.

Thanks again, I'm sure that this information will be usefull to a lot of people.
Oct 9, 2007 at 9:14 AM
I am facing similar problem:

When I was using the 1.1 version this workaround absolutely SOLVED the problem , and I was able to login, post and everything, only problem that was still there (as stated) was the blogroll , but that was not a big issue for me...

Now, I updated to 1.2, got to the same C# source and changed the default provider to hardcode to XML like I did for the 1.1... but this time, it's NOT working ...

I cannot login anymore, the system keep answering "login failed, retry" and I cannot enter any kind of editing or update of the blog...

I know this is a "minor" since most of the blog users have better hosts...but if anyone can help me out... thanks in advance...