RoleProvider.GetRolesForUser メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim instance As RoleProvider Dim username As String Dim returnValue As String() returnValue = instance.GetRolesForUser(username)
戻り値
構成済みの applicationName で指定されたユーザーに割り当てられているすべてのロールの名前を格納している文字列配列。

GetRolesForUser は Roles クラスの GetRolesForUser メソッドによって呼び出され、指定されたユーザーが関連付けられているロール名をデータ ソースから取得します。構成済みの ApplicationName のロールのみ取得されます。
構成済みの applicationName に、指定されたユーザーに対応するロールが存在しない場合、プロバイダから要素のない文字列配列を返すことをお勧めします。
指定されたユーザー名が null 参照 (Visual Basic では Nothing) または空の文字列である場合、プロバイダから例外をスローすることをお勧めします。

GetRolesForUser メソッドの実装サンプルを次のコード例に示します。
Public Overrides Function GetRolesForUser(username As String) As String() If username Is Nothing OrElse username = "" Then _ Throw New ProviderException("User name cannot be empty or null.") Dim tmpRoleNames As String = "" Dim conn As OdbcConnection = New OdbcConnection(connectionString) Dim cmd As OdbcCommand = New OdbcCommand("SELECT Rolename FROM [" & usersInRolesTable & "]" & _ " WHERE Username = ? AND ApplicationName = ?", conn) cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName Dim reader As OdbcDataReader = Nothing Try conn.Open() reader = cmd.ExecuteReader() Do While reader.Read() tmpRoleNames &= reader.GetString(0) & "," Loop Catch e As OdbcException ' Handle exception. Finally If Not reader Is Nothing Then reader.Close() conn.Close() End Try If tmpRoleNames.Length > 0 Then ' Remove trailing comma. tmpRoleNames = tmpRoleNames.Substring(0, tmpRoleNames.Length - 1) Return tmpRoleNames.Split(CChar(",")) End If Return New String() {} End Function
public override string[] GetRolesForUser(string username) { if (username == null || username == "") throw new ProviderException("User name cannot be empty or null."); string tmpRoleNames = ""; OdbcConnection conn = new OdbcConnection(connectionString); OdbcCommand cmd = new OdbcCommand("SELECT Rolename FROM [" + usersInRolesTable + "]" + " WHERE Username = ? AND ApplicationName = ?", conn); cmd.Parameters.Add("@Username", OdbcType.VarChar, 255).Value = username; cmd.Parameters.Add("@ApplicationName", OdbcType.VarChar, 255).Value = ApplicationName; OdbcDataReader reader = null; try { conn.Open(); reader = cmd.ExecuteReader(); while (reader.Read()) { tmpRoleNames += reader.GetString(0) + ","; } } catch (OdbcException) { // Handle exception. } finally { if (reader != null) { reader.Close(); } conn.Close(); } if (tmpRoleNames.Length > 0) { // Remove trailing comma. tmpRoleNames = tmpRoleNames.Substring(0, tmpRoleNames.Length - 1); return tmpRoleNames.Split(','); } return new string[0]; }

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からRoleProvider.GetRolesForUser メソッドを検索する場合は、下記のリンクをクリックしてください。

- RoleProvider.GetRolesForUser メソッドのページへのリンク