0

既存の WebForms ASP.NET 4.0) アプリケーションのロールを管理する方法を見つけようとしています。これは MVC ではありません。既存のプロジェクトを MVC にも .NET 4.5 にも変更できないため、私の要件に応じた解決策を提供してください。

必要のないテーブルを含むメンバーシップ全体 (aspnet_regsql.exe) をインストールすることなく、ロールを管理できる方法として SimpleMembership を検討していました。

これはイントラネット サイトです。ユーザーは Windows ID を介して認証されるため、ログイン自体はありません。ほとんどのユーザーはどのユーザー データベースにも存在しないため、ロールを制御して、特に追加のロールが提供されていない場合でもアクセスできるようにしたいと考えています (おそらく public ロール、または単純な no ロール)。

データベースに参加するユーザーには、役割 (管理者、マネージャーなど) を割り当てて、さまざまなページや機能にさらにアクセスできるようにしたいと考えています。ユーザーはロールを持たない (または上記のパブリック) か、単一のロールまたは複数のロールを持つことができます。

それで、それは可能ですか?テーブル内のユーザーのみにロール ベースのシステムを使用して、他のすべてのユーザーがログインせずにサイトの一部にアクセスできるようにすることはできますか?

SQL Server に既存のユーザー テーブルがあります。テキストファイル/ xml /手動のアプローチではなく、これを使用できるはずです。ユーザーにロールを割り当て、ユーザーを追加するための管理ページが作成されます。

これによると、SimpleMembership を使用できるはずです: http://blog.osbornm.com/2010/07/21/using-simplemembership-with-asp-net-webpages/

_start.cshtml に MVC コードを追加する必要があると書かれていますが、サイト全体を MVC に変換する必要がない限り、これで問題ありません。

現在、これでエラーが発生しています:

The type 'WebMatrix.WebData.WebSecurity' exists in both 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\WebMatrix.WebData\v4.0_1.0.0.0__31bf3856ad364e35\WebMatrix.WebData.dll' and 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\WebMatrix.WebData\v4.0_2.0.0.0__31bf3856ad364e35\WebMatrix.WebData.dll' 

これを修正したら、おそらく web.config 設定で問題ないと思います。

4

1 に答える 1

0

それを機能させるために私がしなければならなかったのは、web.configで適切な設定を取得することだけだったことがわかりました

<add key="webPages:Version" value="2.0" />
<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false" />

_start.cshtml ファイルにコードを追加します。

@{
    WebSecurity.InitializeDatabaseConnection("ConnectionStringNameHere", "Users", "ID", "LanID", false);
}
于 2013-03-17T02:43:23.430 に答える