c# – ASP.NET配置文件保存由旧值覆盖
发布时间:2020-12-15 07:46:04 所属栏目:百科 来源:网络整理
导读:我在网站上使用 ASP.NET的个人资料功能.更新配置文件很奇怪!用户无法更新他/她自己的个人资料,无论是网站用户还是管理员,管理员都无法更新其他用户的个人资料. 在后端,调用Profile的save()后,SQL Server跟踪显示aspnet_Profile_SetProperties存储过程被调用
我在网站上使用
ASP.NET的个人资料功能.更新配置文件很奇怪!用户无法更新他/她自己的个人资料,无论是网站用户还是管理员,管理员都无法更新其他用户的个人资料.
在后端,调用Profile的save()后,SQL Server跟踪显示aspnet_Profile_SetProperties存储过程被调用两次.首先,使用新值,使用旧值.第二次执行是在页面卸载后完成的.我的代码与事务无关. 为什么这么奇怪? aspnet_regsql的安装是否存在问题,因为我已经安装了已卸载并再次安装它!? 码 web.config中 <authentication mode="Forms"> <forms name="FormsAuthentication" loginUrl="~/Login.aspx" defaultUrl="~/Login.aspx" timeout="20"/> </authentication> <membership defaultProvider="CustSqlMembershipProvider"> <providers> <add connectionStringName="connString" applicationName="/space_online" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" name="CustSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"/> </providers> </membership> <roleManager enabled="true" defaultProvider="CustSqlRoleProvider"> <providers> <add connectionStringName="connString" applicationName="/space_online" name="CustSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/> </providers> </roleManager> <anonymousIdentification cookieless="AutoDetect" enabled="true"/> <profile defaultProvider="CustSqlProfileProvider" enabled="true"> <providers> <add name="CustSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="connString" applicationName="/space_online"/> </providers> <properties> <add name="FirstName" type="System.String"/> <add name="LastName" type="System.String"/> <add name="Email" type="System.String"/> <group name="Address"> <add name="Street" type="System.String"/> <add name="City" type="System.String"/> <add name="PostalCode" type="System.String"/> </group> <group name="Contact"> <add name="Phone" type="System.String"/> <add name="Mobile" type="System.String"/> <add name="Fax" type="System.String"/> </group> <add name="ShoppingCart" type="psb.website.BLL.Store.ShoppingCart" serializeAs="Binary" allowAnonymous="true"/> </properties> </profile> 代码背后 private void UpdateProfile(ProfileCommon myprofile) { myprofile.FirstName = tbFirstName.Text.Trim(); myprofile.LastName = tbLastName.Text.Trim(); myprofile.Email = tbEmail.Text.Trim(); myprofile.Address.Street = tbStreetPhysical.Text.Trim(); myprofile.Address.City = tbCity.Text.Trim(); myprofile.Address.PostalCode = tbPostalCode.Text.Trim(); myprofile.Contact.Phone = tbPhone1.Text.Trim(); myprofile.Contact.Mobile = tbMobile.Text.Trim(); myprofile.Save(); } private ProfileCommon GetProfile() { ProfileCommon profile = this.Profile; if (Request.QueryString["UserName"] != null && HttpContext.Current.User.IsInRole("Admin")) profile = this.Profile.GetProfile(Request.QueryString["UserName"].ToString()); else profile = this.Profile.GetProfile(HttpContext.Current.User.Identity.Name); return profile; } protected void tbUpdateProfile_Click(object sender,ImageClickEventArgs e) { UpdateProfile(GetProfile()); } 解决方法
默认情况下,配置文件会在ASP.NET页面执行结束时自动保存,请参阅
profile Element (ASP.NET Settings Schema)文档.这解释了你观察到的第二个“神秘”的拯救.
您可以尝试将automaticSaveEnabled更改为false. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- NSString boundingRectWithSize:options:attri
- c# – “紧”重复键/值匹配
- c# – 右键对齐HTML.TextBoxFor中的文本
- Oracle : the Network Adapter could not establ
- PITRTools
- Ajax.Net Professional——A quick guide how to
- 如何使用Nokogiri :: XML :: Builder在元素名称中
- 将swf编译进另一swf中,并使用其中的类
- .net – 如何将现有的Xml字符串添加到XElement中
- C++ primer Plus(第六版)中文版 第三章 处理数
热点阅读