4
我試圖用個人帳戶的MVC 5.2模板。除了當我試圖刪除用戶的登錄,我得到以下錯誤信息時,一切正常:無法刪除用戶外部登錄
以下行ManagerController的操作失敗:關係無法更改,因爲一個或多個外鍵屬性是不可空。當對關係進行更改時,相關的外鍵屬性將設置爲空值。如果外鍵不支持空值,則必須定義新的關係,必須爲外鍵屬性指定另一個非空值,或者必須刪除不相關的對象。
:
var result = await this.UserManager.RemoveLoginAsync(this.User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
這是完整的RemoveLogin行動:
[HttpPost]
[Route("RemoveLogin")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> RemoveLogin(string loginProvider, string providerKey)
{
ManageMessageId? message;
var result = await this.UserManager.RemoveLoginAsync(this.User.Identity.GetUserId(), new UserLoginInfo(loginProvider, providerKey));
if(result.Succeeded)
{
var user = await this.UserManager.FindByIdAsync(this.User.Identity.GetUserId());
if(user != null)
await this.SignInAsync(user, isPersistent: false);
message = ManageMessageId.RemoveLoginSuccess;
}
else
message = ManageMessageId.Error;
return this.RedirectToAction("ManageLogins", new { Message = message });
}
:本loginProvider和providerKey均爲空。 – 2015-07-09 17:52:32