12

Sto esplorando ASP.NET MVC 4 in questi giorni. Sarò felice se qualcuno possa aiutarti rispondendo alla mia domanda.Come personalizzare un semplice provider di appartenenze per lavorare con il mio database ASP.NET mvc 4

Sto costruendo un progetto accademico "Gestione del progetto e sistema di supporto". Ho progettato il mio database personale, ho le mie tabelle per gli utenti nel mio database (due tipi di utenti: il dipendente che eseguirà le attività e un cliente che assegna/noleggia per le attività), stavo per creare un nuovo provider di appartenenze ma Ho capito che "è una perdita di tempo - reinventare la ruota".

Ora sto creando un modello di appartenenza su ASP.NET MVC4 utilizzando SimpleMembership (è il futuro dei servizi di appartenenza per le applicazioni MVC). Fornisce un provider di appartenenza più conciso al framework ASP.NET e supporta inoltre OAuth.

1- Ho creato un'applicazione Internet ASP.NET MVC 4 per personalizzare la logica di gestione Login, Registrazione e Utente per mantenere la tabella dei profili utente. ho aggiunto tre ruoli: amministratore, per i dipendenti, client

Passando attraverso questa blogpost, sono in grado di personalizzare la registrazione http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/

2- Ora, sto lavorando sincronizzare questa tabella con le tabelle degli utenti che ho avere nel mio database personale Prendendo in considerazione che ho aggiunto un altro campo di "Tipo di account" Chiedendo all'utente durante la registrazione di creare un profilo specifico.

Qualsiasi aiuto molto apprezzato.

Acclamazioni

+0

Date un'occhiata a questo starter kit: http://github.com/kriasoft/site-sdk Ha una soluzione di appartenenze personalizzato –

risposta

25

con SimpleMembership ci sono 2 modi per immagazzinare e utilizzare tali informazioni per l'autenticazione.

  1. è possibile utilizzare la tabella predefinita (UserProfiles), che si trova nel database indicato dalla stringa "DefaultConnection".

  2. è possibile utilizzare il proprio database e una tabella in esso per essere utilizzato come sostituzione della tabella UserProfiles predefinita.

l'opzione 1 è spiegata molto bene altrove.per l'opzione 2, seguire i passaggi indicati di seguito: supponiamo che il contesto del database sia mDbContext e la tabella che si desidera utilizzare per la sostituzione di UserProfiles è Dipendenti.

  1. vostro impiegato modello assomiglia a questo

    namespace m.Models 
    { 
        public class Employee 
        { 
        [Key] 
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
        public int ID { get; set; } 
        public string UserName { get; set; } 
    
        public string FirstName { get; set; } 
        public string LastName { get; set; } 
        public string Mobile { get; set; } 
        public Designation Designation { get; set; } 
        ......... 
    
  2. tua DbContext assomiglia a questo

    namespace m.Models 
    { 
        public class mDBContext : DbContext 
        { 
         DbSet<Employee> Employees { get; set; } 
    ...... 
    
  3. devi dire WebSecurity per utilizzare il database.

    WebSecurity.InitializeDatabaseConnection("mDBContext", 
        "Employees", "ID", "UserName", autoCreateTables: true); 
    
  4. aggiungere ulteriori campi in classe RegisterModel in AccountModels

    public class RegisterModel 
    { 
        [Required] 
        [Display(Name = "User name")] 
        public string UserName { get; set; } 
    
        [Required] 
        [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
        [DataType(DataType.Password)] 
        [Display(Name = "Password")] 
        public string Password { get; set; } 
    
        [DataType(DataType.Password)] 
        [Display(Name = "Confirm password")] 
        [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
        public string ConfirmPassword { get; set; } 
    
        public string FirstName { get; set; } 
        public string LastName { get; set; } 
        public string Mobile { get; set; } 
        public Designation Designation { get; set; } 
    } 
    
  5. Nel metodo AccountController Registrati HttpPost sostituire

    WebSecurity.CreateUserAndAccount(model.UserName, model. 
    

    con

    WebSecurity.CreateUserAndAccount(model.UserName, model.Password, 
        new { FirstName = model.FirstName, LastName = model.LastName, 
         Mobile = model.Mobile}); 
    
  6. ricostruisce e aggiorna il database in attesa di eventuali modifiche (o aggiunta di migrazioni).

+1

Dove devo mettere 'websecurity ....'? –

+1

+1 questo è qualcosa che sembra mancare nella documentazione di ASP.NET – jingtao

0

Seguire la risposta su domanda simile al link qui sotto. Se hai altre domande fammelo sapere.

Similar Question with answer

Aggiornamento

Dopo aver letto il tuo primo commento, suona come è necessario capire prima che cosa MVC è tutto prima di toccare il SimpleMembership. prova i seguenti link

wikipedia

w3schools

MSDN

http://www.asp.net/mvc

+0

stavo controllando lo stesso articolo un'ora prima. Non funziona. Da quale parte del progetto dovrei salvare il profilo nel mio database (intendo quale classe dovrei usare per iniettare il profilo dal profilo utente al mio database)! – ImnotaGeek

+0

Non hai davvero fatto la domanda, ti ho dato una risposta in base al titolo del tuo post. In ogni caso, questo link dovrebbe funzionare, condividere il tuo codice, forse in questo modo potrei fornirti una soluzione specifica. Dal suono di esso, è necessario creare una relazione tra UserProfile e il tuo ExtednedUser ad es. Dipendente – Komengem

+0

Grazie! Sono in questa fase ora, Tutto quello che ho costruito è simile a questo codice condiviso qui. http://blog.longle.net/2012/09/25/seeding-users-and-roles-with-mvc4-simplemembershipprovider-simpleroleprovider-ef5-codefirst-and-custom-user-properties/ – ImnotaGeek

Problemi correlati