2016-05-14 21 views
1

Ich habe eine MVC 5-Anwendung erstellt. Jetzt ist es Zeit, es in der Produktion zu veröffentlichen. Die Infrastruktur besteht aus zwei Servern: Einer kann über das Internet und der andere nur über das Intranet erreicht werden. Server ist Windows Server 2012 R2 und verwendet IIS 8.5 zum Hosten der Anwendung.Zugriff auf eine öffentliche Aktion in ASP.NET MVC verhindern 5

Die Anwendung besteht aus Backend und Frontend. Backend-Funktionen sind nur mit Login verfügbar.

Das Problem, das ich lösen möchte, ist: Wie kann ich die Anmeldung an die Anwendung aus dem Internet verhindern und es nur im Intranet zulassen?

Ich denke, das könnte eine Konfiguration in web.config sein, um das Öffnen der Anmeldeseite zu verhindern.

Ich habe viele Artikel gelesen, aber alle Ergebnisse sollen Seiten von nicht autorisierten Benutzern verhindern. In meinem Fall hat Login-Controller [AllowAnonymous] Attribut und es kann ohne Genehmigung zugegriffen werden.

Wenn es mit einer einfachen Konfiguration in web.config erfolgen würde mich einen Schlüssel in web.config hinzufügen, um zu verfolgen, wo es den Server im Internet oder der Server im Intranet ist wie:

//for server accessible on intranet 
<add key="serverType" value="PUBLIC"/> 

// or 

//for server accessible on intranet 
<add key="serverType" value="Private"/> 

Und in der entsprechenden Controller für die Anmeldung werde ich nach dem Wert zu überprüfen, und wenn es ConfigurationManager.AppSettings["serverType"] == "PUBLIC" ist, werde ich es auf öffentliche Website der Website umleiten.

Hat diese Lösung ein Sicherheitsproblem?

Antwort

0

In diesem Fall würde ich die Konfiguration mit Transformationen oder Parametrisierung ändern (ich bevorzuge diese), um den entsprechenden Authentifizierungstyp zu verwenden. Anonyme für öffentliche und Windows/Forms Auth für private. Sie müssten für jeden Servertyp eine Transformation/Parametrisierung durchführen.

Die folgenden Posts bieten genauere Informationen zur ASP.NET-Sicherheit.

https://msdn.microsoft.com/en-us/library/3yfs7yc7.aspx

https://msdn.microsoft.com/en-us/library/7t6b43z4.aspx

http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx

Verwandte Themen