Login

royalboy

Mitglied
Ich möchte eine Loginformular erstellen mit Berechtigunssteuerung(alle daten sichtbar, nur eigene Daten sichtbar). Aber noch keine Ahnung wie ich das fertigstellen soll. Kann mir jemand da weiterhelfen?

Danke
 
Was genau willst du machen?
Geht es um bestimmte Daten auf einer Seite, oder geht es um ganze Seiten, die nur nach Login gesehen werden durfen ?
Je nachdem entscheidet sich, was ich dir weiter vorschlage :)
 
Es geht umbestimmte Daten auf einer Seite , aber auch um ganze Seiten, auf welche nur der Admin berechtigung haben soll.
 
Hmm...
Also dann beschreibe ich doch mal beide. :)

Seite sperren/freigeben:
Um den Zugriff auf ganze Seiten zu verhindern, gibt es die Möglichkeit, dass die FormsAuthentification von ASP nutzt.
Du würdest also z.B. einen öffentlichen Bereich definieren, auf den man ohne Passworteingabe Zugriff hat und in deinem Projekt einen Unterordner anlegen, den man nur nach Authentification "betreten" kann. (du kannst natürlich auch das ganze Projekt als geschützten Bereich machen)
Die Steuerung, ob Jemand zugriff auf den Inhalt des Ordners hat, oder nicht, geschieht per Web.config
Generell sollte es da einen Teil mit dieser Beschreibung geben:
Code:
    <!--  AUTHENTICATION 
          This section sets the authentication policies of the application. Possible modes are "Windows", "Forms", 
          "Passport" and "None"
    -->
In dem öffnetlichen Bereich schreibst du z.B.:
PHP:
	<authentication mode="Forms">
		<forms loginUrl="geschuetzt/Login.aspx" />
	</authentication>
    
    <authorization>
		<allow users="*"/>
    </authorization>
Und in jedem höchsten geschützten Unterordner legst du ebenfalls eine Web.config an, in der nur stehen muss:
PHP:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>    
  <system.web>
	<authorization>
		<deny users="?" />
	</authorization>
 </system.web>
</configuration>
Die Seite "Login.aspx" musst du natürlich selbst schreiben. Es erscheint immer dann, wenn ein nicht angemeldeter Nutzer auf eine geschützte Seite möchte.
Wenn der Nutzer sich korrekt Authentifiziert hat, schreibst du:
Code:
Session["Benutzer"] = dessenLoginName;
FormsAuthentication.RedirectFromLoginPage(ergoID,true);
Damit ist er eingeloggt.
Um auszuloggen:
Code:
Session["Benutzer"] = null;
FormsAuthentication.SignOut();


Seite anpassen:
Um den Inhalt einzelner Seiten dem Nutzer entsprechen auszugeben, würde ich - wie in PHP - eine Session-Variable anlegen (habe ich oben gleich mal mit 'reingeschrieben) und auf den jeweiligen Seiten fragen, wer's ist. (Die Session-Variable wird für das obige Beispiel sonst nicht gebraucht.)
 
Vielen Dank Herr Gorcky

Das verstehe ich.

Muss ich denn für die Berechtigunssteuerung in der SQL Server neue Users und Roles erstellen?

Danke
 
Original geschrieben von royalboy
Vielen Dank Herr Gorcky
Seit wann spricht man einen Nickname mit Herr davor an...

Wie du feststellest, ob der User die Berechtigung (und welche) hat, bleibt dir überlassen. Dazu kannst du dir eine eigene Tabelle anlegen, aber du musst in den Berechtigungen nichts rumschrauben, da ADO.NET standartmäßig über seinen ASPNET-Account zugreift.
 
Zurück