2012-08-31 22 views
7

Ho utilizzato il provider di appartenenze ASP.NET nel modo in cui viene fornito e va benissimo servendo i miei scopi di base. Una cosa che mi rendo conto è che installa una serie di Processi memorizzati ecc. Nel database.Provider di appartenenze ASP.NET con EF

Esiste un'implementazione EF di appartenenza ASP.NET? o ci sarà?

Ho un progetto emergente che sarà necessario estendere la funzionalità dei provider di appartenenza con ruoli e autorizzazioni tramite alcune GUI.

Inoltre, ogni volta che uso questo, ho due stringhe di connessione nel mio web.config uno per DbContext uno per i servizi di applicazione in particolare per il provider di appartenenza. Perché non posso averne uno?

risposta

0

Esistono sistemi di gestione dei membri gui per MVC3 che potete dare un'occhiata o aggiungere al vostro progetto.

Si può giocare con loro e vedere come funzionano. È semplice una volta che sai dove guardare e puoi crearne uno tuo.

Il Membership Class e MembershipUser Class contiene tutte le informazioni dell'utente. Ad esempio, per un-approvare un utente si può fare questo:

MembershipUser user = Membership.GetUser("userName"); 
user.IsApproved = false; 
Membership.UpdateUser(user); 

E se si desidera eliminare un utente, è possibile utilizzare Membership.DeleteUser("userName");.

Il Roles Class ha tutte le informazioni associate ai ruoli. Come Roles.GetUsersInRole("roleName") restituirà un elenco di tutti gli utenti nel ruolo roleName. Roles.CreateRole("roleName"); creerà un ruolo e Roles.DeleteRole("roleName"); eliminerà un ruolo.

Se hai bisogno di più del valore predefinito, puoi guardare Implementing a Membership Provider.

Per quanto riguarda l'avere due database, questo non è necessario. È possibile aggiungere tutte le tabelle ASP.NET, stored procedure, ecc. Al database utilizzando lo strumento Aspnet_regsql. Dai uno sguardo allo Installing the Database using Aspnet_regsql.exe. Questo ti permetterà di avere solo un database, quindi puoi rimuovere la stringa di connessione asp.net nel tuo Web.Config e poi cambiare il AspNetSqlMembershipProviderAspNetSqlProfileProviderAspNetSqlRoleProvider e forse altri, per usare la stringa di connessione nel tuo database principale.

0

Per l'implementazione del provider di appartenenze e dei ruoli ASP.NET in Entity Framework, è necessario importare tutte le viste di ASPNETDB (database Membership) nel file EDMX. per esempio. vw_aspnet_MembershipUsers, vw_aspnet_Roles, vw_aspnet_UsersInRoles, vw_aspnet_Users, ecc ...

Quindi l'abbonamento verrà eseguito tramite EF. Quindi, puoi fornire GUI usando le funzioni seguenti.

qui è il codice del controller. per esempio.

// GET: /Membership/Edit/5 

    public ActionResult Edit(Guid id) 
    { 
     var recordToEdit = (from r in _db.vw_aspnet_Users where r.UserId == id select r).First(); 
     return View(recordToEdit); 
    } 

    public ActionResult Index() 
    { 
     return View(_db.vw_aspnet_MembershipUsers.ToList()); 
    } 

Ora, come unire l'ASPNETDB al database esistente, per fare un solo stringa di connessione nel web.config. (La tua domanda: perché non ne ho uno solo?)

Ciò è possibile anche utilizzando i passaggi seguenti.

ASPNETDB.MDF è un database di provider di appartenenze e viene utilizzato per archiviare e recuperare i dati di appartenenza dal database e qui vedremo come creare il database del provider di appartenenze. Il comando utilizzato per creare Aspnetdb.mdf è ASPNET_RegSQL.EXE

1.Avvio-> Programmi-> Microsoft Visual Studio 2005-> Strumenti di Visual Studio-> Visual Studio 2005 prompt dei comandi. Digitare Aspnet_regsql.exe nel prompt dei comandi Studio 2005 visiva

  1. verrà visualizzata una procedura guidata con il titolo”Welcome To The guidata server Asp.Net Sql”. Qui è necessario fare clic su Avanti

  2. Successivamente verrà visualizzata una procedura guidata con "Seleziona opzione di configurazione". Ora dobbiamo selezionare l'opzione di configurazione "Configura SQL Server per scopo di applicazione è l'impostazione predefinita". Seleziona quale vuoi e dopo.

  3. Verrà visualizzata una finestra con "Select Sql Server Database" Ora è necessario selezionare il nostro database SQL Server. Qui è necessario impostare server, tipo di autenticazione e database. Se si seleziona il nome predefinito "aspnetDb.mdf" sarà selezionato. Se si desidera modificare il database esistente selezionare quel database.

5.Now Una conferma sarà visualizzato con voce “Confermare le impostazioni”. Ora controlla il nome del servername e il nome del database e fai clic su Avanti.

  1. Viene visualizzata una finestra con "Il database è stato creato o modificato".Ora fare clic su Fine

Fare attenzione a passaggi di cui sopra è necessario selezionare il database esistente, alcune tabelle (11+), punti di vista, si aggiungeranno le stored procedure dell'abbonamento e ruoli per il database esistente ....

Divertitevi .... Grazie ...

+0

come si fa se si utilizza prima il codice DbContext? – DarthVader

+0

Per l'approccio Code First, i comandi non di query possono essere inviati al database utilizzando il metodo ExecuteSqlCommand sul database. context.Database.ExecuteSqlCommand (""); –

+0

beh non sono interessato alle query SQL o ai proc memorizzati. chi sta usando quelli più? – DarthVader

2

I fornitori universali sono quello che stai cercando: http://nuget.org/packages/Microsoft.AspNet.Providers.Core

Questi sono implementati utilizzando EF Codice primi 5 internamente, ci sarà fare la DBContexts interni pubblici una volta che facciamo che tutto funzioni senza intoppi.

Problemi correlati