Samstag, 14. Dezember 2019
Innovative SMS Gateway & Messaging solutions

ASP.NET MVC Webanwendung mit Zwei-Faktor-Authentifizierung

Diese Anleitung erklärt schrittweise, wie Sie mit dem ASPSMS Gateway ein ASP.NET MVC Projekt mit Zweifaktor-Authentifizierung per SMS ausstatten. Das Beispiel verwendet Visual C# und erfordert mindestens Visual Studio 2013.

  1. Neues ASP.NET-Projekt
  2. Dienstverweis hinzufügen: ASPSMS SOAP Webdienst
  3. ASPSMS Credentials in Web.config bereitstellen
  4. ASP.NET Identity SmsService konfigurieren
  5. Code der Manage View anpassen
  6. Telefonnummer hinzufügen
  7. Zweistufige Authentifizierung aktivieren
  8. Anmeldung ausprobieren
  1. Neues ASP.NET-Projekt
    Neues ASP.NET-Projekt
    Erstellen Sie in Visual Studio 2013 eine neue Visual C# ASP.NET-Webanwendung. Wählen Sie als Vorlage MVC und stellen Sie sicher, dass die Authentifizierung auf "Einzelne Benutzerkonten" eingestellt ist.

  2. Dienstverweis hinzufügen: ASPSMS SOAP Webdienst
    Dienstverweis hinzufügen: ASPSMS SOAP Webdienst
    Kopieren Sie Webdienstadresse und Namespace, setzen Sie sie in die entsprechenden Textfelder ein und fügen Sie den Dienstverweis mit [OK] zu Ihrem Projekt hinzu.

    Adresse (kopieren/einsetzen)

    Namespace (kopieren/einsetzen)
    Dienstverweis hinzufügen: ASPSMS SOAP Webdienst


  3. ASPSMS Credentials in Web.config bereitstellen
    <appSettings>
      <add key="webpages:Version" value="3.0.0.0" />
      <add key="webpages:Enabled" value="false" />
      <add key="ClientValidationEnabled" value="true" />
      <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      <add key="ASPSMSUSERKEY" value="MYUSERKEY" />
      <add key="ASPSMSPASSWORD" value="MYPASSWORD" />
      <add key="ASPSMSORIGINATOR" value="+41790000000" />
    </appSettings>
    Stellen Sie Ihrem Projekt die ASPSMS Credentials bereit, indem Sie die appSettings in der Web.config um die beiden folgenden Zeilen ergänzen:
    (kopieren/einsetzen/anpassen)

    Ersetzen Sie die Platzhalter <USERKEY> und <PASSWORD> durch den Userkey und das API-Passwort Ihres ASPSMS Kontos.

  4. ASP.NET Identity SmsService konfigurieren
    public class SmsService : IIdentityMessageService
    {
        public Task SendAsync(IdentityMessage message)
        {
            // Hier den SMS-Dienst einfügen, um eine Textnachricht zu senden.
            var soapSms = new WebApplication1.ASPSMSX2.ASPSMSX2SoapClient("ASPSMSX2Soap");
            soapSms.SendSimpleTextSMS(
                System.Configuration.ConfigurationManager.AppSettings["ASPSMSUSERKEY"],
                System.Configuration.ConfigurationManager.AppSettings["ASPSMSPASSWORD"],
                message.Destination,
                System.Configuration.ConfigurationManager.AppSettings["ASPSMSORIGINATOR"],
                message.Body);
            soapSms.Close();
            return Task.FromResult(0);
        }
    }
    Fügen Sie in der SmsService Klasse in der Datei App_Start\IdentityConfig.cs den Code ein, um den ASPSMS SOAP Webdienst anzusprechen:

    (kopieren/einsetzen)


  5. Code der Manage View anpassen
    @model WebApplication1.Models.IndexViewModel
    @{
        ViewBag.Title = "Verwalten";
    }
    
    <h2>@ViewBag.Title.</h2>
    
    <p class="text-success">@ViewBag.StatusMessage</p>
    <div>
        <h4>Kontoeinstellungen ändern</h4>
        <hr />
        <dl class="dl-horizontal">
            <dt>Kennwort:</dt>
            <dd>
                [
                @if (Model.HasPassword)
                {
                    @Html.ActionLink("Kennwort ändern", "ChangePassword")
                }
                else
                {
                    @Html.ActionLink("Erstellen", "SetPassword")
                }
                ]
            </dd>
            <dt>Externe Anmeldungen:</dt>
            <dd>
                @Model.Logins.Count [
                @Html.ActionLink("Verwalten", "ManageLogins") ]
            </dd>
            @*
                Telefonnummern können als zweite Stufe in einem zweistufigen 
                Authentifizierungssystem verwendet werden.
    
                 In <a href="http://go.microsoft.com/fwlink/?LinkId=403804">diesem Artikel</a>
                 finden Sie Details zum Einrichten dieser ASP.NET-Anwendung für die 
                 Unterstützung zweistufiger Authentifizierung mithilfe von SMS.
    
                 Entfernen Sie den Kommentar für den folgenden Block, nachdem Sie zweistufige 
                 Authentifizierung eingerichtet haben.
            *@
            <dt>Telefonnummer:</dt>
            <dd>
                @(Model.PhoneNumber ?? "None") [
                @if (Model.PhoneNumber != null)
                {
                    @Html.ActionLink("Ändern", "AddPhoneNumber")
                    @:  | 
                    @Html.ActionLink("Entfernen", "RemovePhoneNumber")
                }
                else
                {
                    @Html.ActionLink("Hinzufügen", "AddPhoneNumber")
                }
                ]
            </dd>
            <dt>Zweistufige Authentifizierung:</dt>
            <dd>
                @if (Model.TwoFactor)
                    {
                        using (Html.BeginForm("DisableTwoFactorAuthentication", "Manage", 
                                FormMethod.Post, new { @class = "form-horizontal", 
                                role = "form" }))
                        {
                            @Html.AntiForgeryToken()
                            <text>Aktiviert
                            <input type="submit" value="Deaktivieren" class="btn btn-link" />
                            </text>
                        }
                    }
                    else
                    {
                        using (Html.BeginForm("EnableTwoFactorAuthentication", "Manage", 
                                FormMethod.Post, new { @class = "form-horizontal",
                                role = "form" }))
                        {
                            @Html.AntiForgeryToken()
                            <text>Deaktiviert
                            <input type="submit" value="Aktivieren" class="btn btn-link" />
                            </text>
                        }
                    }
            </dd>
        </dl>
    </div>
    Der benötigte Code kann entweder durch Entfernen der Razor Kommentarbegrenzungszeichen @* und *@ aktiviert werden.

    Oder aber Sie kopieren einfach den untenstehenden Code und ersetzen in der Datei Views\Manage\Index.cshtml den entsprechenden Abschhnitt:

    (kopieren/einsetzen)


  6. Telefonnummer hinzufügen

    Verwalten

    Starten Sie Ihr Projekt und erstellen Sie ein neues Konto. Ein Mausklick auf die gewählte Konto E-Mail Adresse bringt Sie auf die Verwaltungsseite. Klicken Sie dort bei Telefonnummer auf [Hinzufügen].

    Telefonnummer hinzufügen

    Fügen Sie Ihre Mobiltelefonnummer hinzu. ASP.NET Identity versendet an die erfasste Telefonnummer einen Überprüfungscode.

    Überprüfungscode eingeben

    Geben Sie den erhaltenen Überprüfungscode ein.

  7. Zweistufige Authentifizierung aktivieren

    Zweistufige Authentifizierung aktivieren

    Aktivieren Sie die zweistufige Authentifizierung.

  8. Anmeldung ausprobieren

    Überprüfungscode senden

    Melden Sie sich ab und wieder an. Sie werden aufgefordert, den Überprüfungscode als Telefoncode versenden zu lassen.

    Überprüfungscode eingeben

    Geben Sie den Code, der an Ihr Mobiltelefon versendet wurde ein und entscheiden Sie, ob für diesem Browser weiterhin Zwei-Faktor-Authentifizierung verlangt wird oder ob sich Ihre Applikation den verwendeten Browser merken soll.

    Alles klar? Happy Coding :-)


Neuanmeldung

Hier geht's zur ASPSMS Neuanmeldung.

Haben Sie sich bereits registriert? Melden Sie sich mit Benutzer E-Mail Adresse und Login-Passwort an.


Login-Passwort vergessen?

SMS Tools und Interfaces für ASPSMS