Domanda

In alcune circostanze la mia app desktop utilizzando i servizi Web di SharePoint finisce con DefaultNetworkCredentials avere valori nulli, e quindi la chiamata non riesce. Ho bisogno di ottenere quindi le credenziali degli utenti, ma non ho trovato un modo straightfoward per farlo.

Sto pensando di implementare la soluzione descritta in http: // www. pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html

... tuttavia, questo ancora c'è bisogno che mi occupo della password, che mi piacerebbe molto, piuttosto non lo faccio. Ho guardato, ma non sono stati in grado di trovare un metodo più diretto che chiede all'utente e restituisce direttamente un NetworkCredential, senza la mia dover memorizzare la password?

Grazie,

EDIT: Sembra che io non ho intenzione di trovare esattamente quello che sto cercando ... dovrò richiedere all'utente me stesso quando questo accade.

Tuttavia, se sto interpretando alcune di queste risposte in modo corretto, può essere una condizione di errore per i DefaultNetworkCredentials di essere nulla come questo in primo luogo. E 'questo il caso? C'è un modo per forzare le DefaultNetworkCredentials per popolare, o è davvero una semplice cache che ha appena ricordare il dominio dell'ultimo / userid / password utilizzata per il target URI (quel giorno? Che l'applicazione / sessione?).

È stato utile?

Soluzione

Non credo che si può evitare loro movimentazione per la prima volta. Ma, è un gancio nel Credential Manager in modo che possano essere memorizzate nella cache da quel punto in avanti. Ecco un articolo su come farlo . E 'pesante in P / Invoke, ma potrebbe dare agli utenti un'esperienza più coerente.

Altri suggerimenti

I lavori per la questione di fondo, le credenziali Null piuttosto che fastidioso per l'utente informazioni che sono già entrati.

A meno che non si desidera che siano in grado di accedere in SharePoint in modo diverso da burbero conto corrente (una funzione utile, forse).

NET ha il codice per trattare con le credenziali, quindi perché indovinare che uscendo per andare a DLL esterna e l'aggiunta di un'altra dipendenza per la vostra applicazione?

Non so abbastanza di sicurezza codice di rischi che avete nel vostro ambiente, ma avrei pensato che la memorizzazione delle credenziali oggetto in memoria solo client sarebbe "abbastanza sicuro" per la maggior parte delle situazioni.

Non so di qualcosa che gestisce la password per voi, ma SecureString possono essere di uso.

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