Jak zaimplementować zabezpieczenia oparte na rolach z uwierzytelnianiem opartym na formularzach w aplikacji programu ASP.NET przy użyciu programu Visual C# .NET

Wersja tego artykułu dla programu Microsoft Visual Basic .NET:
306238 .

Ten artykuł dotyczy następujących obszarów nazw biblioteki klas systemu Microsoft .NET Framework:
  • System.Web.Security
  • System.Security.Principal

W TYM ZADANIU

Streszczenie

W tym artykule opisano, jak zaimplementować zabezpieczenia oparte na rolach w aplikacji programu ASP.NET z uwierzytelnianiem opartym na formularzach przy użyciu programu Visual C# .NET.

Powrót do początku

Wymagania

W tym artykule zakłada się, że w aplikacji programu ASP.NET zostało już zaimplementowane uwierzytelnianie oparte na formularzach.
301240 How To Implement Forms-Based Authentication in Your ASP.NET Application Using C# .NET
Powrót do początku

Przypisywanie ról do użytkownika uwierzytelniającego się

Ponieważ użytkownicy formularzy zwykle nie są użytkownikami systemu Microsoft Windows, domyślnie nie są skojarzeni z żadnymi rolami. W związku z tym, aby można było w kodzie zaimplementować zabezpieczenia oparte na rolach, należy przypisać do tej tożsamości użytkownika role użytkownika uwierzytelniającego.

W celu implementacji w aplikacji zabezpieczeń opartych na rolach należy użyć przykładowego kodu zawartego w tej sekcji. Kod ten przypisuje wstępnie określone role do użytkownika uwierzytelniającego się. W zależności od tego, jak są magazynowane dane użytkowników, można zastosować inną metodę w celu pobrania ról dla użytkownika uwierzytelnionego i przypisać te role do tożsamości użytkownika uwierzytelniającego, co jest pokazane w następnym kodzie.

Skopiuj następujący kod z pliku Global.asax do istniejącej aplikacji, aby przypisać role do użytkownika uwierzytelniającego się w procedurze obsługi zdarzeń Application_AuthenticateRequest:
public void Application_AuthenticateRequest( Object src , EventArgs e )
{
if (!(HttpContext.Current.User == null))
{
if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" )
{
System.Web.Security.FormsIdentity id;
id = (System.Web.Security.FormsIdentity)HttpContext.Current.User.Identity;
String[] myRoles = new String[2];
myRoles[0] = "Manager";
myRoles[1] = "Admin";
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
}
}
}
Powrót do początku

Sprawdzanie ról użytkowników i implementacja schematu logicznego programu na stronach ASPX

Poniższe kroki umożliwiają implementację i kontrolę schematu logicznego programu w oparciu o role, do których należy użytkownik uwierzytelniający się.
  1. Utwórz nową stronę .aspx o nazwie Sample.aspx i wklej do niej następujący kod:
    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Web" %>

    <script runat=server>
    public void Page_Load() {
    if (User.IsInRole("Admin")){
    Response.Write ("Jesteś administratorem");}
    else {
    Response.Write ("Nie masz przypisanej żadnej roli");}
    }

    </script>
  2. Zapisz stronę Sample.aspx w istniejącej aplikacji. Przejdź do strony, aby ją wypróbować.
Powrót do początku

Materiały referencyjne

Aby uzyskać dodatkowe informacje o zabezpieczeniach programu ASP.NET, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
306590 INFO: ASP.NET Security Overview
Aby uzyskać więcej informacji o zabezpieczeniach opartych na rolach, zobacz następujący temat w dokumentacji zestawu Microsoft .NET Framework Software Development Kit (SDK):Informacje o zabezpieczeniach opartych na rolach można znaleźć również w dokumentacji i kodzie źródłowym w następującej witrynie IBuySpy Developer Solutions w sieci Web:
IBuySpy Developer Solutions
http://www.ibuyspy.com
Firma Microsoft podaje informacje o sposobach kontaktu z innymi firmami, aby ułatwić uzyskanie niezbędnej pomocy technicznej. Informacje te mogą się zmienić bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji dotyczących innych firm.

Powrót do początku
Właściwości

Identyfikator artykułu: 311495 — ostatni przegląd: 21.05.2009 — zmiana: 1

Opinia