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 :

ASP.net Identity, extraction des scripts des tables, execution dans SQL Server ALERT ! [Débutant]


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut ASP.net Identity, extraction des scripts des tables, execution dans SQL Server ALERT !
    Salut,

    J'ai généré les tables nécessaires à ASP.net Identity dans ma base de données SQL Server.
    J'ai eu ces alertes :

    Avertissement*! La longueur de clé maximale est 900*octets. L'index 'PK_AspNetUserLogins' a une longueur maximale de 1800*octets. Dans certains cas, la combinaison de valeurs élevées entraînera l'échec de l'opération d'insertion/mise à jour.
    Avertissement*! La longueur de clé maximale est 900*octets. L'index 'PK_AspNetUserRoles' a une longueur maximale de 1800*octets. Dans certains cas, la combinaison de valeurs élevées entraînera l'échec de l'opération d'insertion/mise à jour.

    J'ai été étonnée de voir des PK NVARCHAR 450

    C'est possible de mettre des ID Identity 1,1 à la place sans avoir à repondre les librairies de sécurité ?

    Merci

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ce ne sont que des avertissements donc il n'y a rien d'inquiétant. Mais en effet on peut se poser la question du pourquoi avoir des clés en NVARCHAR(450). La raison est pûrement technique.

    L'ID d'un utilisateur est une clé surrogée (surrogate key). Donc elle doit répondre aux caractéristiques suivantes :
    Citation Envoyé par Wikipedia
    - la valeur est unique, pour un système entier, et n'est donc jamais réutilisée
    - la valeur est générée par le système
    - la valeur n'est pas manipulable par l'utilisateur ou l'application
    - La valeur n'a aucune signification particulière (elle n'est pas liée aux données, en aucune manière)
    - la valeur n'est pas visible par l'utilisateur ou l'application
    - la valeur n'est pas composée de valeurs provenant de différents domaines applicatifs

    source
    Donc Microsoft a fait le choix d'utiliser un Guid, qui n'est autre qu'un entier de 16 bytes et de le stocker en NVARCHAR. Ils auraient aussi pu le stocker en UNIQUEIDENTIFIER, peut-être que ca n'a pas été fait pour des raisons de compatibilié...

    Il est possible de changer cela pour utiliser un INT au lieu d'un Guid par exemple, en définissant ton propre IdentityUer : Change Primary Key for Users in ASP.NET Identity. Je ne suis pas sûr qu'il soit possible d'ajouter la propriété IDENTITY par contre...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut
    Merci, des fois je me demande si les développeurs ne sont pas tous tombés sur la tête tellement ça devient compliqué de coder alors qu'avant c'était si facile...
    Dans l'avertissement, ça dit quand même : Dans certains cas, la combinaison de valeurs élevées entraînera l'échec de l'opération d'insertion/mise à jour.
    Du coup, ça me fait peur car j'imagine, après 8 ou 9 mois de boulot t'as tout bien fait, tu déploies dans le SQL Serveur de la boite et lorsque tu crées le premier utilisateur, t'as un message du style:
    On t'avais prévenu que ça n’insérerait pas !

    Peut-être faut-il prévoir de changer un paramètre dans SQL Server 2014 (dans mon cas) pour ne plus avoir ce warning, non ?

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Ben ASP.NET Identity est beaucoup plus complet que Membership donc forcément c'est un peu plus compliqué à utiliser. Aujourd'hui tu peux gérer ton identification de plein de manières différentes, directement sur ton serveur, via des services tierces comme Facebook, Twitter, etc. via du SSO, via des certificats... Avant il fallait combiner Membership, WIF et d'autres frameworks de ce type. ASP.NET Identity rassemble tout ca et rationalise le tout autour des protocoles d'aujourd'hui (OAuth, OpenId, etc.).

    Sinon pour la PK en principe il n'y a rien à faire, tu peux l'ignorer. Je pense que ce message apparait car il n'est pas courant d'avoir des clés primaires (PK) de type NVARCHAR. Donc le système te prévient juste qu'il y a une limite de taille.

    Dans mes projets en général je switch vers un type Guid qui est stocké sous forme de UNIQUEIDENTIFIER dans SQL Server, car ensuite c'est plus simple et plus performant pour les jointures. Mais il n'y a rien d'obligatoire à faire cela si tu ne veux pas te lancer dans la personnalisation d'ASP.NET Identity...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre habitué Avatar de Nadinette
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 264
    Points : 144
    Points
    144
    Par défaut
    Je ne suis pas certaine d'avoir le temps et le niveau pour me lancer dans ce genre de trucs...
    Merci du conseil.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copie table AS400 dans SQL server
    Par Archi89 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 05/12/2014, 16h54
  2. [ASP.NET] - ouverture de documents en ligne stockés en base SQL Server
    Par nono27200 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 08/10/2008, 16h45
  3. Utilisation des types de données bit dans SQL Server
    Par yanal dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/05/2008, 14h19
  4. Réponses: 5
    Dernier message: 15/02/2008, 12h15
  5. Réponses: 2
    Dernier message: 21/02/2007, 11h22

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