Domanda

Incoraggiato da ALLORA, sto cercando di scrivere un ASP.NET sito che utilizza OpenID per l'autenticazione dell'utente.Si tratta di una normale WinForms sito (non MVC.NET), utilizzando il DotNetOpenId libreria per l'autenticazione.

E ' sicuro per me, per consentire/negare le funzioni amministrative sul sito semplicemente confrontando l'attuale sessione "ClaimedID" (restituita in OpenIdLogin_LoggedIn evento, come membro DotNetOpenId.RelyingParty,OpenIdEventArgs.Risposta.ClaimedIdentifier) di un noto amministratore di OpenID (es.la mia)?

Se è così, è sicuro per questo ID per essere visibili (ad es.il codice open source), o dovrebbe essere "nascosto" in un file di configurazione o una riga del database?(So che è meglio il design per renderlo configurabile, la mia domanda è solo circa la sicurezza).

È stato utile?

Soluzione

Jarrett fa alcuni buoni commenti sull'utilizzo di tabelle di database.

Giusto per rispondere a un'altra delle tue domande, no, non è una cosa riservatezza per mettere il tuo OpenID nel codice generale.Se l'impostazione dei ruoli sembra eccessivo per il tuo sito, un semplice controllo di uguaglianza contro il ClaimedIdentifier è semplicemente perfetto.

Altri suggerimenti

La mia soluzione è seguire la stessa idea dei Ruoli tabella.Dopo aver autenticato l'utente, cercare che i ruoli dell'utente.Se l'utente ha il ruolo di "Amministratore" in UserRoles tabella, quindi possono fare quello che l'Amministratore può fare.

Io non broadcast open ID è nella mia app.Essi sono memorizzati nella tabella.In ogni azione risultato, sto colpendo la tabella degli Utenti, dal momento che ho anche modificato il mio per memorizzare varie informazioni di stato utente.Con l'eccezione della home page, ci sarà qualche utente le informazioni che ho bisogno di quella tabella.Sto utilizzando LINQ, in modo da includere il .LoadWith() per caricare l'Utente con la sua lista di ruoli quando serializza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top