Visual studio 2015 在默认应用程序中启用SMS 2FA(Twilio)

Visual studio 2015 在默认应用程序中启用SMS 2FA(Twilio),visual-studio-2015,twilio,Visual Studio 2015,Twilio,我正在尝试将Twilio与我的VS2015站点集成,很明显,Twilio上给出的示例是针对一个纯MVC项目的,并且有一个AccountController.cs(步骤5/6) CS0051可访问性不一致:参数类型“ITWIIOMessageSender”的可访问性不如方法“SmsService.SmsService(ITWIIOMessageSender)”的可访问性 错误指向: public SmsService(ITwilioMessageSender messageSender)

我正在尝试将Twilio与我的VS2015站点集成,很明显,Twilio上给出的示例是针对一个纯MVC项目的,并且有一个AccountController.cs(步骤5/6)

CS0051可访问性不一致:参数类型“ITWIIOMessageSender”的可访问性不如方法“SmsService.SmsService(ITWIIOMessageSender)”的可访问性

错误指向:

public SmsService(ITwilioMessageSender messageSender)
    {
        _messageSender = messageSender;
    }
总之,一个错误我无法修复,一个问题我不知道这个步骤5/6代码块需要去哪里。如果这是一个网络表单,它需要进去,它不是在这个项目中默认添加,但我不知道。如果有人能更好地理解这一点,我将非常感谢您的帮助。

我最后给出了以下示例,但您需要下载的旧版本,因为新版本不支持client.sendmages()方法。目前还没有一个完整的VS2015代码示例可以处理所有新的东西。老实说,我试图让新版本工作,但它不会。这个旧版本确实有效,我从我的网站上收到了短信。 最佳做法是在web.config中添加您的帐户信息

<appSettings>
   <add key="webpages:Version" value="3.0.0.0" />
   ...

   <add key="ACCOUNT_SID" value="<YOUR SID>" />
   <add key="AUTH_TOKEN" value="<YOUR LIVE TOKEN>"/>
  <add key="CLIENT_PHONE" value="<YOUR ACCNT PHONE>" />
</appSettings>
Twillio在你注册时给你两个代币。。。并没有告诉您其中一个只能在Twilio Account REST API控制台中使用。试用帐户只能向您注册时使用的电话号码发送短信。因此,如果您在测试时没有收到该电话号码的短信,请交换您的代币


这是使用VS2015默认网站应用程序和身份模型框架进行测试的。我当然希望这对其他人有所帮助,这样他们就不必花3个小时在Twilio和STFW上浪费时间。

Twilio的Jeremy,David。AccountController.cs是该教程示例应用程序的一部分。您可以在这里下载整个应用程序:如果您真正需要的是如何发送SMS,那么这个简单的示例将帮助您开始:我知道该示例显示的是一个控制台程序,但相同的代码在ASP.NET中也可以使用。您只想使用异步版本来获得最佳性能。最后,对于真正硬化的双因素实现,您可能需要考虑使用AUTY。这里有一个教程:您好,David,我认为Twilio提供的示例是一个一次性的实现,设计过度。当给出的示例抛出错误(CS0051)不一致的可访问性时,它不会给人信心:到那时,我甚至没有遇到迫使我改变方向的路障。我确实找到了如何完成实现的方法,但是(CS0051)错误无法纠正,因此这是教程代码的一个问题。您对错误的看法完全正确,不值得信任。我尝试更正错误,但当我克隆示例应用程序并使用VS 2015(14.0.25431.01更新3、.NET Framework 4.6.1)构建时,没有收到错误。我有没有想过如何重现这个问题?我想确保我们把所有的边缘都钉牢了。
public SmsService(ITwilioMessageSender messageSender)
    {
        _messageSender = messageSender;
    }
<appSettings>
   <add key="webpages:Version" value="3.0.0.0" />
   ...

   <add key="ACCOUNT_SID" value="<YOUR SID>" />
   <add key="AUTH_TOKEN" value="<YOUR LIVE TOKEN>"/>
  <add key="CLIENT_PHONE" value="<YOUR ACCNT PHONE>" />
</appSettings>
public class SmsService : IIdentityMessageService
{
    public Task SendAsync(IdentityMessage message)
    {
        // add your Twilio code here
        string ACCOUNT_SID = ConfigurationManager.AppSettings["ACCOUNT_SID"];
        string AUTH_TOKEN = ConfigurationManager.AppSettings["AUTH_TOKEN"];
        string CLIENT_PHONE = ConfigurationManager.AppSettings["CLIENT_PHONE"];

        TwilioRestClient client = new TwilioRestClient(ACCOUNT_SID, AUTH_TOKEN);

        client.SendMessage(CLIENT_PHONE, message.Destination, message.Body);
        return Task.FromResult(0);
    }
}