Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo WindowsTokenRoleProvider.IsUserInRole (String, WindowsBuiltInRole)

 

Data di pubblicazione: ottobre 2016

Ottiene un valore che indica se l'utente specificato appartiene al ruolo Windows incorporato specificato.

Spazio dei nomi:   System.Web.Security
Assembly:  System.Web (in System.Web.dll)

public bool IsUserInRole(
	string username,
	WindowsBuiltInRole role
)

Parametri

username
Type: System.String

Il nome utente per la ricerca nel formato dominio\nome utente.

role
Type: System.Security.Principal.WindowsBuiltInRole

Il ruolo di Windows eseguire la ricerca.

Valore restituito

Type: System.Boolean

true Se l'utente specificato appartiene al ruolo di Windows specificato; in caso contrario, false.

Exception Condition
System.ArgumentNullException

username è null.

System.Configuration.Provider.ProviderException

L'utente attualmente in esecuzione non dispone di un autenticato WindowsIdentity collegato a Page.User. Per scenari non HTTP, l'utente attualmente in esecuzione non hanno un oggetto autenticato WindowsIdentity collegato a Thread.CurrentPrincipal.

-oppure-

username non corrisponde il Name dell'oggetto WindowsIdentity.

Il IsUserInRole metodo consente di controllare se un utente è in uno dei ruoli Windows comuni descritti per il WindowsBuiltInRole enumerazione. Questo metodo è utile per le applicazioni localizzate in più lingue. Questo overload del IsUserInRole metodo non è fa parte della RoleProvider classe di base e sono accessibili solo eseguendo il cast di Provider proprietà del Roles di classi il WindowsTokenRoleProvider tipo.

È possibile chiamare il IsUserInRole metodo solo per l'utente attualmente connesso, come identificato dalla variabile server LOGON_USER. Se il valore fornito nel username parametro non è il nome dell'utente attualmente connesso, un HttpException viene generata un'eccezione.

IsUserInRole metodo può essere chiamato solo per l'utente attualmente connesso identificato dalla variabile server LOGON_USER. L'utente attualmente connesso deve essere un utente autenticato di Windows. Per ulteriori informazioni sull'autenticazione Windows e ASP.NET, vedere ASP.NET Authentication.

Esempio di codice seguente a livello di codice controlla se l'utente attualmente connesso è nel ruolo Administrators prima di consentire all'utente di visualizzare informazioni sui ruoli per l'applicazione. Per un esempio di un file Web. config che consente la gestione dei ruoli, vedere WindowsTokenRoleProvider.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Security.Principal" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;

public void Page_Load()
{
  Msg.Text = "";

  WindowsPrincipal p = (WindowsPrincipal)System.Threading.Thread.CurrentPrincipal;

  if (!p.IsInRole(WindowsBuiltInRole.Administrator))
  {
    Msg.Text = "You are not authorized to view user roles.";
    return;
  }


  // Bind roles to GridView.

  try
  {
    rolesArray = Roles.GetRolesForUser(User.Identity.Name);
  }
  catch (HttpException e)
  {
    Msg.Text = "There is no current logged on user. Role membership cannot be verified.";
    return;
  }

  UserRolesGrid.DataSource = rolesArray;
  UserRolesGrid.DataBind();

  UserRolesGrid.Columns[0].HeaderText = "Roles for " + User.Identity.Name;
}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: View User Roles</title>
</head>
<body>

<form runat="server" id="PageForm">

  <h3>View User Roles</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  <table border="0" cellspacing="4">
    <tr>
      <td valign="top"><asp:GridView runat="server" CellPadding="4" id="UserRolesGrid" 
                                     AutoGenerateColumns="false" Gridlines="None" 
                                     CellSpacing="0" >
                         <HeaderStyle BackColor="navy" ForeColor="white" />
                         <Columns>
                           <asp:TemplateField HeaderText="Roles" >
                             <ItemTemplate>
                               <%# Container.DataItem.ToString() %>
                             </ItemTemplate>
                           </asp:TemplateField>
                         </Columns>
                       </asp:GridView></td>
    </tr>
  </table>

</form>

</body>
</html>

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: