IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

Membership User Provider Role et Profile


Sujet :

ASP.NET MVC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Membership User Provider Role et Profile
    Bonjour,

    Je suis débutant en ASP.NET, je développement un site avec Visual Studio 2010 et ASP.NET (MVC 2.0).

    J'aimerai faire un système d'inscription puis authentification et limitation d'acces a certaine page.

    J'ai ma propre base utilisateurs :

    id int
    login varchar(50)
    password varchar(100) (un hash MD5 du password)
    email varchar(100)
    customerkey varchar(100)
    customersecret varchar(100)

    j'ai mes view :

    login <= avec le formulaire de login
    register <= avec le formulaire d'inscription

    si j'ai bien compris :

    Comme j'ai une base de données personnaliser il faudrait que je :

    1) Modifie le MembershipUser => pour qu'il colle avec l'user que j'ai dans ma base de données
    2) Modifie le Membership Provider => pour qu'il prenne en compte mon MembershipUser et qu'il utilise mes formulaire personnaliser (donc que j'override ValidateUser et CreateUser)
    3)J'ai pas bien compris comment marche le Membership Roles mais en gros une fois mon visiteur authentifié il devient "membre", et donc je peux faire ma restriction de page dans mon web.config
    4)Je veux utiliser le Membership Profile pour qu'il garde ne mémoire l'id de mon visiteur authentifié (à la façon d'une session) et que je puisse faire des requête vers une autre table en faisant un where userid = id;

    Déjà la je sais pas si j'ai bien compris l'utilité de chaque élément.

    Après je sais pas du tout par ou commencer pour la modification de mon MembershipUser pour qu'il se calque a ma base user.
    Et je me demande si il faut pas que je rajoute des champs a ma table user pour qu'elle puisse être utilisé par le membership provider? (quand je vois la table par default du membership provider, je me dis que tout ne m'est pas utile genre le passwordSalt et d'autres colonnes)

    Si vous pouviez m'orienter sur quoi faire svp ?

    Merci d'avance

  2. #2
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    ah, ah, on découvre les joies du MemberShip ??
    Trés bonne idée ça.

    Alors, tu va te lancer dans un truc assez balaises mais trés sympa.

    Vu ce que tu veux faire (les Overrides surtout) tu vas allez loin dans le truc et les possibilités qu'il offre.

    Mais j'ai noté un truc qui me perturbe beaucoup : tu veux adapter le MemberShip à ton truc déjà en palce. Erreur !
    C'est toi qui va t'adapter au MemberShip, il est plus tétu que toi !!!

    Les rôles, ça marche comme pour la gestion d'un sereur Windows : tu mets des User dans des Rôles et tu autorise des rôles sur des pages (en gros, hien !)

    Ensuite, le Profile, oui, c'est bien, mais y a des limites, tout dépend de ce que tu veux faire.

    Mais as tu activé l'outils qui te permet de créer la base de données ?
    Parce que c'est la base des choses. Avec ça, tu as plein de chose déjà en place, tu n'as plus qu'à injecter tes données dans la nouvelle structure et tu t'ouvre les portes de la gestion d'application.

    Voilà, si tu as besoins d'autres choses, n'hésites pas. Mon système de site est basée intégralement sur ce fameux MemberShip.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Alors j'ai fais plein de recherche voila comment j'ai commencé a procédé :

    j'ai créé une nouvelle application ASP.NET MVC 2 (pas la version vide la version avec l'exemple)

    Voila mes différents fichier :

    iTwitterMembershipProvider.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Collections.Specialized;
    using iTwitter.Models;
     
     
     public class iTwitterMembershipProvider : MembershipProvider
    {
     
        public override string ApplicationName
        {
            get { return _ApplicationName; }
            set { _ApplicationName = value; }
        }
     
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            throw new NotImplementedException();
        }
     
        public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
        {
            return false;
        }
     
        public override iTwitterMembershipUser CreateUser(string login,
                                                          string password,
                                              string email,
                                              string tokenKey,
                                              string tokenSecret,
                                              string twitterUserId,
                                              object providerUserKey,
                                              out MembershipCreateStatus status)
        {
            ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(login,
                                                                           password,
                                                                           true);
     
            OnValidatingPassword(args);
     
            if (args.Cancel)
            {
                status = MembershipCreateStatus.InvalidPassword;
                return null;
            }
     
            if (RequiresUniqueEmail && GetUserNameByEmail(email) != "")
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return null;
            }
     
            iTwitterMembershipUser u = GetUser(login, false);
     
            if (u == null)
            {
                UserRepository _user = new UserRepository();
     
                _user.CreateUser(login, password, email);
                status = MembershipCreateStatus.Success;
     
                return GetUser(login, false);
            }
            else
            {
                status = MembershipCreateStatus.DuplicateUserName;
            }
     
            return null;
        }
     
        public override bool DeleteUser(string username, bool deleteAllRelatedData)
        {
            throw new NotImplementedException();
        }
     
        public override bool EnablePasswordReset
        {
            get { return _EnablePasswordReset; }
        }
     
        public override bool EnablePasswordRetrieval
        {
            get { return _EnablePasswordRetrieval; }
        }
     
        public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
        {
            throw new NotImplementedException();
        }
     
        public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
        {
            throw new NotImplementedException();
        }
     
        public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
        {
            throw new NotImplementedException();
        }
     
        public override int GetNumberOfUsersOnline()
        {
            throw new NotImplementedException();
        }
     
        public override string GetPassword(string username, string answer)
        {
            throw new NotImplementedException();
        }
     
        public override iTwitterMembershipUser GetUser(string login, bool userIsOnline)
        {
            UserRepository _user = new UserRepository();
     
            return _user.GetUser(login);
        }
     
        public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
        {
            throw new NotImplementedException();
        }
     
        public override string GetUserNameByEmail(string email)
        {
            UserRepository _user = new UserRepository();
     
            return _user.GetUserNameByEmail(email);
        }
     
        public override int MaxInvalidPasswordAttempts
        {
            get { return _MaxInvalidPasswordAttempts; }
        }
     
        public override int MinRequiredNonAlphanumericCharacters
        {
            get { return _MinRequiredNonalphanumericCharacters; }
        }
     
        public override int MinRequiredPasswordLength
        {
            get { return _MinRequiredPasswordLength; }
        }
     
        public override int PasswordAttemptWindow
        {
            get { return _PasswordAttemptWindow; }
        }
     
        public override MembershipPasswordFormat PasswordFormat
        {
            get { return _PasswordFormat; }
        }
     
        public override string PasswordStrengthRegularExpression
        {
            get { return _PasswordStrengthRegularExpression; }
        }
     
        public override bool RequiresQuestionAndAnswer
        {
            get { return _RequiresQuestionAndAnswer; }
        }
     
        public override bool RequiresUniqueEmail
        {
            get { return _RequiresUniqueEmail; }
        }
     
        public override string ResetPassword(string username, string answer)
        {
            throw new NotImplementedException();
        }
     
        public override bool UnlockUser(string userName)
        {
            throw new NotImplementedException();
        }
     
        public override void UpdateUser(MembershipUser user)
        {
            throw new NotImplementedException();
        }
     
        public override bool ValidateUser(string login, string password)
        {
            if (login == password)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
     
     
        //
        // A helper function to retrieve config values from the configuration file.
        //  
     
        private string GetConfigValue(string configValue, string defaultValue)
        {
            if (string.IsNullOrEmpty(configValue))
                return defaultValue;
     
            return configValue;
        }
     
        //
        // Properties from web.config, default all to False
        //
        private string _ApplicationName;
        private bool _EnablePasswordReset;
        private bool _EnablePasswordRetrieval = false;
        private bool _RequiresQuestionAndAnswer = false;
        private bool _RequiresUniqueEmail = true;
        private int _MaxInvalidPasswordAttempts;
        private int _PasswordAttemptWindow;
        private int _MinRequiredPasswordLength;
        private int _MinRequiredNonalphanumericCharacters;
        private string _PasswordStrengthRegularExpression;
        private MembershipPasswordFormat _PasswordFormat = MembershipPasswordFormat.Hashed;
     
        public override void Initialize(string name, NameValueCollection config)
        {
            if (config == null)
                throw new ArgumentNullException("config");
     
            if (name == null || name.Length == 0)
                name = "CustomMembershipProvider";
     
            if (String.IsNullOrEmpty(config["description"]))
            {
                config.Remove("description");
                config.Add("description", "Custom Membership Provider");
            }
     
            base.Initialize(name, config);
     
            _ApplicationName = GetConfigValue(config["applicationName"],
                          System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);
            _MaxInvalidPasswordAttempts = Convert.ToInt32(
                          GetConfigValue(config["maxInvalidPasswordAttempts"], "5"));
            _PasswordAttemptWindow = Convert.ToInt32(
                          GetConfigValue(config["passwordAttemptWindow"], "10"));
            _MinRequiredNonalphanumericCharacters = Convert.ToInt32(
                          GetConfigValue(config["minRequiredNonalphanumericCharacters"], "1"));
            _MinRequiredPasswordLength = Convert.ToInt32(
                          GetConfigValue(config["minRequiredPasswordLength"], "6"));
            _EnablePasswordReset = Convert.ToBoolean(
                          GetConfigValue(config["enablePasswordReset"], "true"));
            _PasswordStrengthRegularExpression = Convert.ToString(
                           GetConfigValue(config["passwordStrengthRegularExpression"], ""));
     
        }
    }
    iTwitterMembershipUser.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using iTwitter.Models;
     
    namespace iTwitter.Models
    {
        public class iTwitterMembershipUser : MembershipUser
        {
            private string _tokenKey;
            private string _tokenSecret;
            private string _twitterUserId;
            private string _login;
            private string _email;
            private int _providerUserKey;
     
            public string tokenKey
            {
                get { return _tokenKey; }
                set { _tokenKey = value; }
            }
     
            public string tokenSecret
            {
                get { return _tokenSecret; }
                set { _tokenSecret = value; }
            }
     
            public string twitterUserId
            {
                get { return _twitterUserId; }
                set { _twitterUserId = value; }
            }
     
            public string login
            {
                get { return _login; }
                set { _login = value; }
            }
     
            public string email
            {
                get { return _email; }
                set { _email = value; }
            }
     
            public int providerUserKey
            {
                get { return _providerUserKey; }
                set { _providerUserKey = value; }
            }
     
            public iTwitterMembershipUser(object providername,
                                      string login,
                                      int providerUserKey,
                                      string email,
                                      string tokenKey,
                                      string tokenSecret,
                                      string twitterUserId)
            {
                this.tokenKey = tokenKey;
                this.tokenSecret = tokenSecret;
                this.twitterUserId = twitterUserId;
                this.login = login;
                this.providerUserKey = providerUserKey;
                this.email = email;
            }
     
     
     
     
        }
    }
    webconfig.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    <?xml version="1.0"?>
     
    <!--
      For more information on how to configure your ASP.NET application, please visit
      http://go.microsoft.com/fwlink/?LinkId=152368
      -->
     
    <configuration>
      <connectionStrings>
      <add name="iTwitterDB" connectionString="metadata=res://*/Models.iTwitter.csdl|res://*/Models.iTwitter.ssdl|res://*/Models.iTwitter.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\iTwitter.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /></connectionStrings>
     
      <system.web>
        <compilation debug="true" targetFramework="4.0">
          <assemblies>
            <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
          <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies>
        </compilation>
     
        <authentication mode="Forms">
          <forms loginUrl="~/Account/LogOn" timeout="2880" />
        </authentication>
     
        <membership defaultProvider="CustomMembershipProvider">
          <providers>
            <clear />
            <add name="CustomMembershipProvider" type="iTwitterMembershipProvider" connectionStringName="iTwitterDB" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
          </providers>
        </membership>
     
        <profile>
          <providers>
            <clear />
            <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="iTwitterDB" applicationName="/" />
          </providers>
        </profile>
     
        <roleManager enabled="false">
          <providers>
            <clear />
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="iTwitterDB" applicationName="/" />
            <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
          </providers>
        </roleManager>
     
        <pages>
          <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
          </namespaces>
        </pages>
      </system.web>
     
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true" />
      </system.webServer>
     
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    iTwitterDB :



    UserRepository.cs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
     
    namespace iTwitter.Models
    {
        public class UserRepository
        {
            public iTwitterMembershipUser CreateUser(string login, string password, string email)
            {
                using (iTwitterDB db = new iTwitterDB())
                {
                    Users user = new Users();
     
                    user.login = login;
                    user.email = email;
                    user.password = password;
                    user.tokenKey = "0";
                    user.tokenSecret = "0";
                    user.twitterUserId = "0";
     
                    db.AddToUsers(user);
                    db.SaveChanges();
     
                    return GetUser(login);
                }
            }
     
            public string GetUserNameByEmail(string email)
            {
                using (iTwitterDB db = new iTwitterDB())
                {
                    var result = from u in db.Users where (u.email == email) select u;
     
                    if (result.Count() != 0)
                    {
                        var dbuser = result.FirstOrDefault();
     
                        return dbuser.login;
                    }
                    else
                    {
                        return "";
                    }
                }
            }
     
            public iTwitterMembershipUser GetUser(string login)
            {
                using (iTwitterDB db = new iTwitterDB())
                {
                    var result = from u in db.Users where (u.login == login) select u;
     
                    if (result.Count() != 0)
                    {
                        var dbuser = result.FirstOrDefault();
     
                        string _login = dbuser.login;
                        int _providerUserKey = dbuser.id;
                        string _email = dbuser.email;
                        string _tokenKey = dbuser.tokenKey;
                        string _tokenSecret = dbuser.tokenSecret;
                        string _twitterUserId = dbuser.twitterUserId;
     
     
                        iTwitterMembershipUser user = new iTwitterMembershipUser("CustomMembershipProvider",
                                                                  _login,
                                                                  _providerUserKey,
                                                                  _email,
                                                                  _tokenKey,
                                                                  _tokenSecret,
                                                                  _twitterUserId);
     
                        return user;
                    }
                    else
                    {
                        return null;
                    }
                }
            }
        }
    }
    J'ai les erreurs suivante a la compilation (voir image en pj) :

    Voila on j'en suis. je pense qu'il y a des trucs que je dois reprendre.
    Images attachées Images attachées  

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par zooffy Voir le message
    Ensuite, le Profile, oui, c'est bien, mais y a des limites, tout dépend de ce que tu veux faire.
    C'est juste pour stocker l'id de mon utilisateur qui me permettra après de recupérer des info appartenant a cet utilisateur mais étant sur une autre table.

    Citation Envoyé par zooffy Voir le message
    Mais as tu activé l'outils qui te permet de créer la base de données ?
    Non je l'ai pas utilisé (je ne sais même pas ou il se trouve)

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Pas mal ce que tu as fait déjà, tu es allé beaucoup plus loin que moi car je n'ai pas encore joué à overrider les choses, je reste sur les outil disponibles.

    Du coup, n'étant as trés doué sur l'overriding, je vais pas pouvoir t'aider beaucoup sur ce coup là.

    L'outil de mise en place se trouve dans un répertoire de Windows.
    De mémoire :
    Windows\Microsoft.NET\Framework\v2.0.50727
    et tu cherche le fichier aspnet_regsql.exe, tu lances et tu suis les isntructions.
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    ok merci

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bon je n'y arrive pas je vais donc utiliser la table par default du membership provider, mais j'aimerai savoir si je peux ajouter des informations spécifique ?
    mon tokenKey, tokenSecret, twitterUserId .
    Comment dois-je m'y prendre ?

  8. #8
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Dans un souci de respect de ce qui est en place, j'ai utilisé la méthode suivante :
    Je fais une table pour les membres de mon site avec les informations spécifiques à mon site et je mets une clé étrangère en reprenant le UserId venant de la table aspnet_Users. Comme ça, je peux faire des jointures fiables.

    Maintenant (mais je n'ai pas exploité cette possibilité) il est possible d'ajouter des champs à la table aspnet_User, ça t'oblige juste à modifier des Proc Stock livré avec la MemberShip et overrider certains objet dans les classes du MemberShip, donc pas mal de boulot pour un résultat (à mon sens) aléatoire.

    En fait ce qu'il faut te dire c'est que ton User est géré par le memberShip et que tu rajoute des choses pour ton site. A partir du moment où tu as correctement implanté le MemberShip tu l'exploite et tu continue de programmer ton site comme d'habitude, juste en te rapellant que pour gérer ton User, tu as une classe d'objet à disposition.

    Mais le MemberShip reste un gros morceau à ingurgiter, genre tu essaie de manger une bonne grosse côte boeuf à toi tout seul, donc ce n'est pas un truc que tu fais sur le pouce, entre midi et deux. Tu dois prendre tout ton Dimanche pour préparer le barbecue, prévoir le petit Cabernet d'Anjou et la sauce béarnaise qui va bien pour la côté arrive dans ton estomac, sans trop le torturer.

    Prends le temps de lire ce qui traine sur le NET et de faire des essais et des essais et encore des essais.

    Avant d'overrider des trucs, prends le tempsde comprendre comment ils fonctionnent par eux même.
    Perso (mais je ne suis ps trés douer sur l'overriding, encore une fois) ça fait trois ans que je bosse avec le MemberShip et je vais attendre d'avoir vraiment le temps pour overrider mon propre MemberShip.

    Si tu as besoins d'autres choses ..........
    Mon blog de création d'univers : Qualhiryann
    Mon site qui parle de moi www.ozouf.com
    Pour les joueurs de WOW je suis sur Ysondres et mon perso est Ablanore.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Ok c'est ce que je pensais faire une table spécifique pour moi.
    Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/07/2008, 12h47
  2. Réponses: 6
    Dernier message: 26/06/2008, 03h53
  3. User et Role
    Par zulot dans le forum C#
    Réponses: 9
    Dernier message: 25/09/2007, 12h07
  4. Pb provider roles.
    Par FamiDoo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 14/08/2007, 11h36
  5. Failed to load users/passwords/role files
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 23/07/2007, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo