Asp.NET CustomMembershipUser wordt niet herkend door WSAT

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Nibble
  • Registratie: Juli 2001
  • Laatst online: 28-08 20:24
Momenteel ben ik bezig met het implementeren van een CustomMembershipProvider met CustomMembershipUser. So far, so good.
De user is overgeerft en heeft enkele propertyvelden extra, maar gebruikt als constructor de base class. Overige velden worden gezet dmv getters en setters.
De provider implementeert de hele MembershipProvider iterface naar behoren.

Als ik een call maak zoals:
code:
1
2
3
4
5
6
7
8
9
int totalUsers = 0;
            MembershipUserCollection muc = Membership.GetAllUsers(0, 100, out totalUsers);
            foreach (MembershipUser mu in muc)
            {
                if (mu is MyMembershipUser)
                {
                    System.Diagnostics.Debug.WriteLine(mu.UserName);
                }
            }


Werkt dat prima. Wat dus wil zeggen dat de juist classes worden aangeroepen.
Er komt namelijk een CustomMembershipUser terug ipv de standaard MembershipUser

Het probleem wat ik heb is dat de WSAT (applicatie beheersinterface) van ASP.NET niet overweg lijkt te kunnen met die custom membership user.
Iets wat hij volgens microsoft wel zou moeten kunnen!
De error die ik terugkrijg op GetAllUsers is:

code:
1
Type is not resolved for member 'MyMembershipUser,MySite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.


GetAllUsers wordt gevuld met CustomMembershipUsers. Via code kan ik hier prima bij (zie boven), als ik deze vervang met MembershipUsers (welke dus properties missen) werkt het wel goed.
Het lijkt er dus sterk op dat als de daadwerkelijke klasse niet de standaard membership is WSAT er de brui aan geeft. Alleen waarom dat zo is is mij een raadsel!
Contractueel klopt alles, dus ik vermoed ergens een configuratie issue, ik zou alleen niet meer weten waar ik het moet zoeken (trust me, ik heb heel google en msdn gehad).

Iemand een ideetje?

T is for TANK, and T is for TERROR ... and K is the K for KILLING in error.


Acties:
  • 0 Henk 'm!

  • Feanathiel
  • Registratie: Juni 2007
  • Niet online

Feanathiel

Cup<Coffee>

WSAT heeft geen weet van waar je jouw klassen/assemblies hebt staan. Hierdoor is het ook niet mogelijk om er een instantie van te laten aanmaken. Om deze bekend te maken, zul je ze moeten aanmelden in de GAC. Hiervoor is een strong key nodig. Praktisch is het niet, zeker niet als je aan het debuggen bent. Volgens deze referentie moet het ook mogelijk zijn om een (symbolic) link tussen ASP.NETWebAdminFiles/bin en je debug folder aan te maken.

Key is, maak je assemblies bekend aan WSAT.