the problem is solved just a "virtual" keyword was missed for a property in an entity class!!!!!!!!!! (the cost = 1,5 days... it is nice well)
On 12 Jan, 09:52, Sheri <[email protected]> wrote: > Hi Mohammad! > Thansk for you quick reply > Yes I use custome membership provider. I use project model and I have > created "ASP .NET MVC" project through its template (1.0). It is a > local server, I have used the built in SQL Server in VS 2008. > > my wb.config for mentioned part (nhibernate and membership provider > looks like so: > > _________________ Parts of web.config _________________ > > <configuration> > > <configSections> > .... > <section name="hibernate-configuration" > type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /> > </configSections> > > <appSettings/> > > <connectionStrings> > <add name="ApplicationServices" connectionString="data source=. > \SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory| > aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/ > > </connectionStrings> > > <system.web> > ... > <authentication mode="Forms"> > <forms loginUrl="~/Account/LogOn" timeout="2880" /> > </authentication> > > <membership defaultProvider="MonitorMembershipProvider"> > <providers> > <clear/> > <add name="MonitorMembershipProvider" > > type="WebMonitorUpdate.MembershipServicesImpl.SQLServerMembershipProvider" > connectionStringName="" > enablePasswordRetrieval="true" > enablePasswordReset="true" > requiresQuestionAndAnswer="false" > requiresUniqueEmail="true" > passwordFormat="Hashed" > maxInvalidPasswordAttempts="5" > minRequiredPasswordLength="6" > minRequiredNonalphanumericCharacters="0" > passwordAttemptWindow="10" > passwordStrengthRegularExpression="" > applicationName="/" > /> > </providers> > </membership> > > <profile> > <providers> > <clear/> > <add name="AspNetSqlProfileProvider" > type="System.Web.Profile.SqlProfileProvider, System.Web, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" > connectionStringName="ApplicationServices" > applicationName="/" > /> > </providers> > </profile> > > <roleManager enabled="false"> > <providers> > <clear /> > <add connectionStringName="ApplicationServices" > applicationName="/" name="AspNetSqlRoleProvider" > type="System.Web.Security.SqlRoleProvider, System.Web, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> > <add applicationName="/" name="AspNetWindowsTokenRoleProvider" > type="System.Web.Security.WindowsTokenRoleProvider, System.Web, > Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> > </providers> > </roleManager> > > ..... > > <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> > <session-factory name="WebMonitorUpdate"> > <property > name="connection.provider">NHibernate.Connection.DriverConnectionProvider</ > property> > <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</ > property> > <property > name="connection.driver_class">NHibernate.Driver.SqlClientDriver</ > property> > <property name="connection.connection_string">Data Source=. > \SQLEXPRESS;AttachDbFilename=|DataDirectory| > WebMonitorUpdate.mdf;Integrated Security=True;User Instance=True</ > property> > <property > name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFac > tory, > NHibernate.ByteCode.LinFu</property> > <mapping assembly ="WebMonitorUpdate" /> > </session-factory> > </hibernate-configuration> > </configuration> > ___________________________________________________ > > Here is the code for my membership provider: > > _________________ MEMBERSHIP PROVIDER _________________ > > public sealed class SQLServerMembershipProvider : > MembershipProvider > { > private OnlineSystemService service = null; > > private string applicationName; > private int maxInvalidPasswordAttempts; > private int passwordAttemptWindow; > private int minRequiredNonAlphanumericCharacters; > private int minRequiredPasswordLength; > private string passwordStrengthRegularExpression; > private bool enablePasswordReset; > private bool enablePasswordRetrieval; > private bool requiresQuestionAndAnswer; > private bool requiresUniqueEmail; > > #region Settings > > public override string ApplicationName > { > get { return this.applicationName; } > set { this.applicationName = value; } > } > > public override int MaxInvalidPasswordAttempts { get { return > this.maxInvalidPasswordAttempts; } } > public override int PasswordAttemptWindow { get { return > this.passwordAttemptWindow; } } > public override int MinRequiredNonAlphanumericCharacters { get > { return this.minRequiredNonAlphanumericCharacters; } } > public override int MinRequiredPasswordLength { get { return > this.minRequiredPasswordLength; } } > public override string PasswordStrengthRegularExpression { get > { return this.passwordStrengthRegularExpression; } } > public override bool EnablePasswordReset { get { return > this.enablePasswordReset; } } > public override bool EnablePasswordRetrieval { get { return > false; } } > public override bool RequiresQuestionAndAnswer { get { return > this.requiresQuestionAndAnswer; } } > public override bool RequiresUniqueEmail { get { return > this.requiresUniqueEmail; } } > public override MembershipPasswordFormat PasswordFormat > { > get { return MembershipPasswordFormat.Hashed; } > } > > #endregion > > public SQLServerMembershipProvider(): this(null) > { > } > > public SQLServerMembershipProvider(OnlineSystemService > service) > { > this.service = service ?? new OnlineSystemService(); > } > > public override void Initialize(string name, > NameValueCollection config) > { > base.Initialize(name, config); > > this.ApplicationName = GetConfigValue(config > ["applicationName"], > > System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath); > this.maxInvalidPasswordAttempts = Convert.ToInt32 > (GetConfigValue(config["maxInvalidPasswordAttempts"], "5")); > this.passwordAttemptWindow = Convert.ToInt32(GetConfigValue > (config["passwordAttemptWindow"], "10")); > this.minRequiredNonAlphanumericCharacters = Convert.ToInt32 > (GetConfigValue(config["minRequiredNonAlphanumericCharacters"], "1")); > this.minRequiredPasswordLength = Convert.ToInt32 > (GetConfigValue(config["minRequiredPasswordLength"], "7")); > this.passwordStrengthRegularExpression = Convert.ToString > (GetConfigValue(config["passwordStrengthRegularExpression"], > string.Empty)); > this.enablePasswordReset = Convert.ToBoolean(GetConfigValue > (config["enablePasswordReset"], "true")); > this.enablePasswordRetrieval = Convert.ToBoolean > (GetConfigValue(config["enablePasswordRetrieval"], "true")); > this.requiresQuestionAndAnswer = Convert.ToBoolean > (GetConfigValue(config["requiresQuestionAndAnswer"], "false")); > this.requiresUniqueEmail = Convert.ToBoolean(GetConfigValue > (config["requiresUniqueEmail"], "true")); > } > > public override bool ChangePassword(string username, string > oldPassword, string newPassword) > { > > //username and systemId1 are splited by | > if (!String.IsNullOrEmpty(username)) > { > OnlineSystem system = > this.service.getCustomerInfoByName(username); > if (system == null) return false; > > if (!CheckPassword(oldPassword, system.Password)) > return false; > > ValidatePasswordEventArgs args = new > ValidatePasswordEventArgs(username, newPassword, false); > OnValidatingPassword(args); > if (args.Cancel) > { > if (args.FailureInformation != null) > throw args.FailureInformation; > else > throw new MembershipPasswordException("Change > password canceled due to new password validation failure."); > } > system.Password = HashPassword(newPassword); > service.SystemDAO.commitTransaction(); > } > else > { > return false; > } > return true; > } > /* > * This method check whether the username/system ID and > password match together for a user! > */ > public override bool ValidateUser(string usernameAndSystemId, > string password) > { > string[] temp = usernameAndSystemId.Split('|'); > string username = temp[0]; > int systemId; > if (!String.IsNullOrEmpty(temp[1]) && int.TryParse(temp > [1], out systemId) && !String.IsNullOrEmpty(username)) > { > OnlineSystem system = > this.service.getCustomerInfoByName(username); > if (system == null) return false; > > if (!CheckPassword(password, system.Password) || > system.SS20Id != systemId) return false; > > return true; > } > else > { > return false; > } > } > > /* > * Since the login process need username and system id GetUser > should be overrde! > * if user is online the information should be pass otherwise > not. > */ > public override MembershipUser GetUser(string username, bool > userIsOnline) > { > MembershipUser user = null; > > if (!String.IsNullOrEmpty(username) && userIsOnline) > { > OnlineSystem system = > this.service.getCustomerInfoByName(username); > if (system != null) > { > user = new MonitorUser(this.Name, > system.LoginName, > system.SS20Id, > string.Empty, > ... > > läs mer »
-- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
