2015-01-21 37 views
1

我正在使用ASP.net標識框架的默認模板來註冊用戶。問題是我無法刪除任何用戶。我收到了錯誤「必須指定默認成員資格提供程序」。我知道我必須指定默認會員供應商,然後使用Membership.Delete(..);來簡單地刪除用戶。但問題是我無法配置成員默認提供程序。我搜索了很多,但所有鏈接建議使用「ASP.NET配置」嚮導,我無法在Web-Form項目中找到!這裏是創建一個用戶代碼:刪除Web表單中的用戶

var manager = new UserManager(); 
var user = new ApplicationUser() { UserName = UserName.Text }; 
IdentityResult result = manager.Create(user, Password.Text); 
+0

身份和成員身份是兩回事。你能在哪裏看到你的錯誤嗎?或者再解釋一下你是如何配置你的認證的? – 2015-01-21 09:59:25

+0

我剛開始使用asp.net!我使用上面的代碼來創建用戶!現在只需要使用代碼來從DB中刪除用戶!如果我不能使用會員資格,那麼我可以做些什麼呢? – 2015-01-21 14:09:23

+0

如果您已經從VS2013提供的模板之一創建了應用程序,那麼如果您在創建嚮導的開頭選中了正確的方框,則應該自動配置ASP.NET標識。之後,剩下的唯一要做的就是調用[DeleteAsync](https://msdn.microsoft.com/en-us/library/dn497527(v = vs.108).aspx)方法來刪除用戶的UserManager。請記住,會員身份和身份是不同的。對於新項目,您應該使用Identity,並且您不應該在項目中使用Membership。 – 2015-01-21 14:16:59

回答

0

使用

userManager.Delete(user) 

的MembershipProvider是depricated;無論你使用這個類的調用 - 刪除他們 - 他們不會工作,因爲身份框架和MembershipProvider不兼容

+0

這就是要點!默認情況下沒有這樣的功能 – 2015-01-21 14:07:51

+0

在這種情況下,您的命名空間有問題 - 這是Identity框架的一部分,我之前使用過它。試試'userManager.DeleteAsync(user)'。此方法的同步版本作爲來自其他命名空間的擴展方法,但包含在您使用Identity獲得的nuget中。 – trailmax 2015-01-21 14:21:59

+0

它在身份框架的第2版中可用!由於我使用的版本,我不得不使用另一種方法!我使用了一個bool變量來取消激活帳戶而不是刪除它! – 2015-01-21 14:51:19