2014-09-02 68 views
1

我竭力要弄清楚如何在我的IIdentityMessageService實現返回錯誤信息爲ASP.NET 2.1的身份,即:如何從IIdentityMessageService中的SendAsync返回錯誤消息?

Task SendAsync(IdentityMessage message); 

當生成2FA代碼並派出我想陷阱如果SMS失敗並顯示錯誤消息:

public async Task<ActionResult> SendCode(SendCodeViewModel model) 
.. 
var token = await this.UserManager.GenerateTwoFactorTokenAsync(userId, model.SelectedProvider); 
var result = await this.UserManager.NotifyTwoFactorTokenAsync(userId, model.SelectedProvider, token); 

我想第二個電話彙報result.Succeeded == false,讓我從result.Errors讀取錯誤消息。

有沒有辦法做到這一點,或者我看着它錯誤的方式,應該使用不同的方法來捕獲SendAsync上的任何錯誤?

回答

3

SendAsync並不是真的意味着要立即返回錯誤消息,您可以通過拋出然後捕獲SendCode中的異常來顯示所需的錯誤,從而完成所需的操作。

+1

感謝您的回覆郝!我*討厭*,並總是避免使用流量控制的例外,但我猜我必須作出例外來解決這個問題。 ;) – Matt 2014-09-03 06:54:18

+0

這個想法是,發送應該很少失敗,如果你想包含泄漏出用戶管理器的異常,你可以擴展管理器並在Notify方法中實現try/catch以返回一個標識結果錯誤 – 2014-09-03 20:55:36

相關問題