2

Windows 認証を必要とするイントラネット Web サイトを作成しています。データベースで管理されている Windows 認証とロールを使用するように、既にすべてをセットアップしているか、セットアップしたと思います。Active Directory のグループと役割を使用できないため、これは重要です。

できます。Web サイトに入ると、自分の Windows ユーザー名が表示され、User.Identity.Name. を使用して役割を検証できUser.IsInRole("roleName")、それも機能します。

今私が抱えている問題は、使用するMembership.GetUserMembership.GetAllUsers常に null と空のコレクションになることです。

私の RoleManager プロバイダーは次のとおりです。

<add 
name="SqlRoleManager" 
type="System.Web.Security.SqlRoleProvider" 
connectionStringName="ApplicationServices" 
applicationName="/appName" 
/>

そして、私のメンバーシッププロバイダーはこれです:

<add 
name="AspNetSqlMembershipProvider" 
type="System.Web.Security.SqlMembershipProvider" 
connectionStringName="ApplicationServices" 
applicationName="/appName" 
/>

何か足りないのですか、それとも設定が間違っていますか? ありがとう!

4

1 に答える 1

2

なぜ Membership.GetUser を呼び出す必要があるのですか? あなたはすでに Windows 認証を介して認証されています。Windows 認証でメンバーシップを使用する場合 (理由はわかりません)、さらにいくつかの手順を実行する必要があります。

SqlMembershipProvider ではなく、ActiveDirectoryMembershipProvider を使用できます。これにより、GetUser を呼び出して AD 情報を取得できます。

ログイン時に Windows 認証情報を SqlMembership データベースにコピーできます。

すべての認証を自分で行うことができるカスタム メンバーシップ プロバイダーを作成できます。

では、最初の質問は、なぜメンバーシップを使用したいのかということです。

于 2012-10-22T16:56:24.870 に答える