Domanda

Sto usando SqlMembershipProvider per eseguire la gestione degli utenti del mio sito Web ASP.NET. In particolare, il sito deve essere multilingue (globalizzato!).

Quando creo utenti usando Membership.CreateUser è positivo ricevere eccezioni per cose come e-mail duplicate, nomi utente duplicati ecc. Ma quello che voglio è riutilizzare quel testo di eccezione facendolo localizzare nella cultura del thread corrente.

Sono sicuro di impostare correttamente la cultura dell'interfaccia utente del thread corrente, ecc. poiché tutte le altre funzionalità di globalizzazione sono completamente funzionali.

Avevo l'impressione che tutti i testi di eccezione di .NET Framework fossero globalizzati. Non sono ???

In particolare, sto testando il francese. Penso di aver installato con successo il Language Pack francese .NET 3.5 SP1 (ma non certo - c'è un modo per controllare !?) seguendo le istruzioni da qui .

È forse possibile che solo le eccezioni System.Web.Security.Membership non siano localizzate? O mi manca un passaggio di configurazione dell'ambiente?

Qualsiasi aiuto sarebbe fantastico.

Andrew.

È stato utile?

Soluzione

I messaggi di eccezione non sono localizzati.

È necessario localizzarli da soli utilizzando i codici di errore:

Public Shared Function ErrorCodeToString( _
                    ByVal createStatus As MembershipCreateStatus) As String
    Select Case createStatus
        Case MembershipCreateStatus.DuplicateUserName
            Return Resources.Resource.Account_DuplicateUserName

        Case MembershipCreateStatus.DuplicateEmail
            Return Resources.Resource.Account_DuplicateEmail

        ...

Vedi questo collegamento MSDN per un elenco completo di codici di stato.

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