locked
Les profils dans SilverLight ! RRS feed

  • Question

  • Bonjour,

    Je suis en train de porter une appli Asp.Net en SilverLight, assez basique. Mais elle a des particularités qui font que de ci de là ca accroche. Par exemple j'utilise une authentification par formulaire, et chaque utilisateur a un profil, qui n'est pas uniquement constitué de type de bases de .Net. J'utilise donc ce genre de configuration dans le web.config en Asp.Net:

    <profile enabled="true" defaultProvider="StibilProfileProvider" inherits="MyNameSpace.UserProfile">
           <providers>
               <add name="StibilProfileProvider" connectionStringName="Stibil" applicationName="Stibil" type="System.Web.Profile.SqlProfileProvider" />
           </providers>
    </profile>
    et le classe MyNameSpace.UserProfile est définie comme suit:

    namespace MyNameSpace
    {
    
        public class UserProfile : ProfileBase
        {
    
            public static UserProfile GetUserProfile(string username)
            {
                return Create(username) as UserProfile;
            }
            public static UserProfile GetUserProfile()
            {
                return Create(Membership.GetUser().UserName) as UserProfile;
            }
    
            [SettingsAllowAnonymous(false)]
            public virtual UneClasse TypeBureau
            {
                get { return ((UneClasse)(this.GetPropertyValue("TypeBureau"))); }
                set
                {
                    this.SetPropertyValue("TypeBureau", value);
                }
            }
            
            [SettingsAllowAnonymous(false)]
            public string Chemin
            {
                get { return base["Chemin"] as string; }
                set { base["Chemin"] = value; }
            }
    }
    Donc pratiquement mon profil contient une string et une classe sérialisable MaClasse.

    Maintenant en SilverLight, en créant une AuthenticationService, on a ce code:

    using System.Web.Ria;
    using System.Web.Ria.ApplicationServices;
    using System.Collections.Generic;
    using System;
    
    
    namespace BusinessApplication1.Web
    {
        [EnableClientAccess]
        public class AuthenticationService : AuthenticationBase<User>
        {
        }
    
        [Serializable]
        public class MaClasse { public int a { get; set; } }
    
        public class User : UserBase
        {
            // NOTE: Profile properties can be added for use in Silverlight application.
            // To enable profiles, edit the appropriate section of web.config file.
    
            public string Chemin  {get ; set; }
            public MaClasse TypeBureau { get; set; }
        }
    }
    



    Ca compile mais alors je ne peux pas utiliser le cjhamp TypeBureau dans

    RiaContext

     

    .Current.User.TypeBureau;

    alors que

    RiaContext

     

    .Current.User.Chemin;

    existe bien...

    Merci de votre aide
    mercredi 2 septembre 2009 12:31

Toutes les réponses

  • Bon sur un NG américain, on me dit que les types complexes ne sont pas supportés, mais qu'en revanche je peux utiliser un champ String sur lequel je Serialise/Désérialise ma classe. C'est-à-dire que je ferai le boulot moi-même. Mais après tout pourquoi pas ?

    Maintenant j'ai une autre question: comment voir le profil des autres utilisateurs ? Par exemple, je suis sur un compte spécial de gestion, et je veux aller voir les infos de profil des autres zozos...

    Merci de vos retours
    mercredi 2 septembre 2009 15:21