MVCプロジェクトでは、ユーザがAspNetRoles
テーブルとAspNetUsers
テーブルにユーザとロールを追加することができます。アプリケーションは、Active Directoryを使用してログインビューでユーザーを認証します。私のデータベースでは、私のデータベースにAdministrators
の役割にユーザuser123
を追加しました。私はこのリンクを私のログイン部分のAdministrators
ロールに見えるようにするために以下のロジックを追加しました。データベースに格納されているASPNETユーザーとロールに対して、どのように認証しますか?
@if (Roles.IsUserInRole("Administrators"))
{
@Html.ActionLink("Manage Accounts", "Index", "Roles")
}
私はまた、データベースへのロールプロバイダ接続をインスタンス化する試みで、私のweb.configファイルにこれを追加しました。
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="DefaultConnection"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider"
applicationName="MyApplicationName" />
</providers>
</roleManager>
しかし、私のリンクはまだ私のデータベースによるとAdministrators
のメンバーであるuser123
には見えません。これの原因は何ですか?
Chris、私はLDAPを通して認証しています。私はAD証明書を使って自分のアプリケーションにログインしています。ユーザー名とパスワードが有効かどうかを確認できます。私のログインパーシャルがIDを使用しています。私の役割提供者は間違っていると思います。しかし、これは私がこれのような何かを試みた最初のものであり、私はMVCにかなり新しいです。 – Skullomania
IDがロールプロバイダを使用しないため、ロールプロバイダが間違って設定されていることを保証できます。 –
ok ... webconfigから文字列を削除すると、データベースのロールを使用してアプリケーションを認証する方法を教えてください。 – Skullomania