找不到IIdentityMessageService

时间:2014-12-17 12:39:36

标签: c# asp.net-mvc-5 asp.net-identity

我正在使用asp.net MVC5和Visual Studio 2013创建一个Web应用程序。我将sendgrid API安装到我的解决方案中,并创建了一个实现接口IIdentityMessageService的类(实际上我正在遵循教程) 。问题是,VS一直说无法找到界面或我错过了程序集引用。我仔细检查过,我有所需的所有包含和所有的装配参考。我甚至去了微软网站,检查我是否使用了正确的网站。这是代码:

using SendGrid;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Web;
using Microsoft.AspNet.Identity;


namespace ESW.Models
{
    public class EmailService : IIdentityMessageService
    {
        public async Task SendAsync(IdentityMessage message)
        {
            await configSendGridasync(message);
        }

        // Use NuGet to install SendGrid (Basic C# client lib) 
        private async Task configSendGridasync(IdentityMessage message)
        {
            var myMessage = new SendGridMessage();
            myMessage.AddTo(message.Destination);
            myMessage.From = new System.Net.Mail.MailAddress(
                                "Joe@contoso.com", "Joe S.");
            myMessage.Subject = message.Subject;
            myMessage.Text = message.Body;
            myMessage.Html = message.Body;

            var credentials = new NetworkCredential(
                       ConfigurationManager.AppSettings["mailAccount"],
                       ConfigurationManager.AppSettings["mailPassword"]
                       );

            // Create a Web transport for sending email.
            var transportWeb = new Web(credentials);

            // Send the email.
            if (transportWeb != null)
            {
                await transportWeb.DeliverAsync(myMessage);
            }
            else
            {
                Trace.TraceError("Failed to create Web transport.");
                await Task.FromResult(0);
            }
        }
    }
}

编辑:http://msdn.microsoft.com/en-us/library/microsoft.aspnet.identity.iidentitymessageservice(v=vs.108).aspx

这是我用来验证装配参考的页面。

2 个答案:

答案 0 :(得分:1)

我在遵循该教程时遇到了同样的问题。 Thilina De Silva让我走上正轨。它不是关于版本,但是没有安装包。

这将安装最新版本(使用软件包管理器控制台)

Install-Package Microsoft.AspNet.Identity.Owin

答案 1 :(得分:0)

检查您的Microsoft.AspNet.Identity.Owin版本。你应该有最低2.1.0(但更好的安装newset - 现在它是2.2.1)。

如果必须更新 - 使用NuGet安装它:

Update-Package Microsoft.AspNet.Identity.Owin -Version 2.2.1