Custom membership provider in partial trust mode



Hello,

I am developing a custom membership provider. For that I built a prototype that uses a SQL Server 2005 database as a backend store. I implemented the class System.Web.Security.MembershipProvider and implemented few necessary methods. The methods use SQL for interacting with the SQL Server database. I put all this code in a class library.

I also created a simple Website using Visual Studio 2005 and configured the Web.config to use this custom provider that I have written. Everything worked fine. I could use the ASP.NET configuration tool and use the custom provider to add users and view user details. Then I added a login page with a login control and create user page with create user control and both of them worked.

Now, I want to run this provider in the partial trust environment since MOSS 2007 runs in Minimal trust mode. I followed instructions provided in some of the articles that I found on the web. Basically, the steps I took were
- Add a line <trust level="CustomTrust" originUrl=""/> in the Web.Config for the website I created.
- Add a security policy in the same Web.config. This policy associates the trust level specified above with the config file.
- I then copied web_minimaltrust.config from the framework CONFIG directory to the Website directory and renamed it
- I then added [assembly: AllowPartiallyTrustedCallers] and [assembly: SecurityCritical] in the assemblyInfo file for the custom provider.
- I added a permission set to the custom.config file. It is like this -
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="MyCustomPermissionSet"
Unrestricted="true"
Level="CustomTrust"
Description="My custom permission set">
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution, Assertion"
/>
<IPermission
class="SqlClientPermission"
version="1"
Unrestricted="true"
/>
</PermissionSet>
- I then created a strong name key pair file and added it to the custom provider project and referenced it in that project.
- I added a Codegroup section in the custom.config file as follows
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="MyCustomPermissionSet"
Description="Custom code group for my signed assembly">
<IMembershipCondition
class="StrongNameMembershipCondition"
version="1"
PublicKeyBlob="Public key blob from the strong name key pair"
/>
</CodeGroup>
- I added [SecurityCritical] in front of all the methods that are implemented
- I added following code in all the methods
SecurityPermission permission1 = new SecurityPermission(PermissionState.Unrestricted);
permission1.Assert();

Now I am trying to run the ASP.NET configuration tool and it gives an error
"This feature is not supported at the configured trust level".

If I raise the trust level to 'Medium', everything works. If I lower it to 'Low', I get a different error, something about mscorlib. "Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0.... failed".

First of all, do I have to run the custom provider in the minimal trust level? I am doing this because I read that MOSS 2007 expects it to run in partial [minimal] trust mode.

Where am I going wrong? I could not find anything on the web that will help me solve this problem. So, any help is really appreciated.

Thanks,

Atul.

.



Relevant Pages

  • RE: Perflib errors in event logs after SP2 installation
    ... Using a previous configuration instead¡± but works fine. ... System account is a potential security risk. ... Policy provider runs under the Local System account, ... Microsoft CSS Online Newsgroup Support ...
    (microsoft.public.windows.server.sbs)
  • Please Help... Re: bug in vs2005 for asp .net 2.0 ?
    ... I created a new application pool and allocated my website running under ... test the connection to the provider I do get an error that says that it is ... Could not establish a connection to the database. ... How do I know what kind of connection string the configuration tool is using ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Custom Membership Provider FullTrust Problem
    ... Next - make sure your provider is "public" - the provider factory can also instantiate non-public providers and that works fine in full trust - but not in partial trust ... Parser Error Message: Attempt to access the method failed. ... I've asked my ISP if they can run the assemblies in Full ...
    (microsoft.public.dotnet.framework.aspnet.security)
  • Re: IE active X need never trust feature
    ... > install a activex control that I dont want in a reapeating loop. ... > certain provider and ignored the previous request. ... > always trust content form x box. ...
    (microsoft.public.security)
  • Re: Custom Membership Provider FullTrust Problem
    ... ok - a little ambitious to start with partial trust;) ... compilation is different - but easy - pages/controls are compiled by demand - ... I'm not sure if the provider is strong named. ... Something I've yet to get my head around with .net 2 is how assemblies ...
    (microsoft.public.dotnet.framework.aspnet.security)