Ciao A tutti,
dopo qualche ricerca su internet ho trovato una soluzione che cercavo al riguardo un forms authentication per WPF.
L'esempio dopo ho preso l'idea si basa sul Client Application Services cosi ho creato due progetti in Wpf un ClientApp.csproj e l'Application Service Host(AppServices.csproj) con ASP.NET Web Service Application ho settato tutti i paramemetri neccesari nella configurazione Web.Config e ho aggiunto due classi, sempre nel progetto AppServices,TestMembershipProvider.cs eTestRoleProvider.cs ,cosi facendo posso crearmi users e roles nelle due classi e posso autenticarmi nella applicazione senza problemi .
Ma Adesso vorrei cambiare password agli users e non so come applicare questa funzione
Nella classe TestMembershipProvider.cs ho creato gli users con questo procedimento:
public class TestMembershipProvider : MembershipProvider
{
private System.Collections.Hashtable users = null;
internal static string ManagerUserName = "Manager".ToLowerInvariant();
internal static string ManagerPassword = "ThaoThao".ToLowerInvariant();
public override void Initialize(string name,
System.Collections.Specialized.NameValueCollection config)
{
users = new System.Collections.Hashtable();
users.Add(ManagerUserName, ManagerPassword);
base.Initialize(name, config);
}
public override bool ValidateUser(string username, string password)
{
if (users.ContainsKey(username.ToLowerInvariant()))
{
return password.Equals((string)users[username.ToLowerInvariant()]) ;
}
return false; }
}
questo e il codice che uso per creare gli users ma adesso non ho idea che codice usare per validare il metodo :
public override bool ChangePassword(string username, string oldPassword, string newPassword){}
Il mio scopo e cambiare la password per gli utenti e crearmi un form nel CLientApp per eseguire questa operazione.
Se questo puo essere d'aiuto posto il codice dell'autenticazione :
public partial class Window1 : Window
{
public Window1()
{
Membership.ValidateUser(String.Empty, String.Empty);
InitializeComponent();
}
private void Windowd_Load(object sender, RoutedEventArgs e)
{
if (!Thread.CurrentPrincipal.Identity.IsAuthenticated)
{
MessageBox.Show("Invalid credentials.PLease....");
this.Close();
return;
}
if (Thread.CurrentPrincipal.IsInRole("manager"))
{
managerOnlyButton.Visibility = Visibility;
DataGridEmployee.Visibility = Visibility;
}}
}
Vi chiedo se avete qualche consiglio come validare il metodo ChangePassword cosi da modificare la password o se devo cambiare impostazione del codice.
Vi Auguro buona giornata
Ciao
Modificato da noninoni il 11 febbraio 2009 07.25 -