我有一個.NET用戶控件在Umbraco網站上運行,我希望能夠從代碼隱藏中刪除當前成員(我意識到這聽起來不像一個偉大的計劃,但這並在一個正常的ASP.NET窗體現場工作),但調用System.Web.Security.Membership.DeleteUser(usernameToDelete, trueOrFalse);
給我(的頁面,我重定向到)上:錯誤試圖刪除當前成員
No member with username '[email protected]' exists
Exception Details: System.Configuration.Provider.ProviderException: No member with username '[email protected]' exists
[ProviderException: No member with username '[email protected]' exists]
umbraco.providers.members.UmbracoProfileProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection) +346
System.Configuration.SettingsBase.SaveCore() +402
System.Configuration.SettingsBase.Save() +109
System.Web.Profile.ProfileBase.SaveWithAssert() +31
System.Web.Profile.ProfileBase.Save() +72
System.Web.Profile.ProfileModule.OnLeave(Object source, EventArgs eventArgs) +9025062
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
爲什麼嘗試設置屬性值我有後刪除了用戶並更改了頁面?我看不到如何設置/刪除當前的Umbraco會員。
編輯:我使用的是一把umbraco v 4.11.1(議會版本:1.0.4715.27659)
這裏是我的註銷代碼最長的版本,我已經試過了還是給出了錯誤:
// sort out problems with umbraco caches:
Member.RemoveMemberFromCache(Member.CurrentMemberId());
Member.ClearMemberFromClient(Member.CurrentMemberId());
Roles.RemoveUserFromRole(Page.User.Identity.Name, JobShopRoles.RoleNames.Candidate.ToString());
//logout from: http://stackoverflow.com/questions/412300/formsauthentication-signout-does-not-log-the-user-out
FormsAuthentication.SignOut();
Page.Session.Clear(); // This may not be needed -- but can't hurt
Page.Session.Abandon();
// Clear authentication cookie
HttpCookie rFormsCookie = new HttpCookie(FormsAuthentication.FormsCookieName, "");
rFormsCookie.Expires = DateTime.Now.AddYears(-1);
Page.Response.Cookies.Add(rFormsCookie);
// Clear session cookie
HttpCookie rSessionCookie = new HttpCookie("ASP.NET_SessionId", "");
rSessionCookie.Expires = DateTime.Now.AddYears(-1);
Page.Response.Cookies.Add(rSessionCookie);
// Invalidate the Cache on the Client Side
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.Cache.SetNoStore();
//END logout
System.Web.Security.Membership.DeleteUser(currentUser.UserName, true);
//TODO: this will consistently give an error trying to update a property on a deleted member. Qs:
//http://stackoverflow.com/questions/14899945/error-trying-to-delete-current-member
//http://our.umbraco.org/forum/core/general/38455-Error-trying-to-delete-current-Member
Response.Redirect("/", false);
順便說一句,您使用的是哪種Umbraco版本? – 2013-02-16 16:29:31