特定のユーザーのみを許可し、ユーザーが認証されていない場合はリダイレクトするように、以前に c# asp.net webforms でメンバー フォルダーを設定しました。私はこれが可能かどうか疑問に思っています/セッション変数が存在する(値が入力されている)天気に基づいて認証を実装する方法、またはセッションがnullの場合は認証しない方法.
フォルダー全体の we.config でアクセス許可を設定する方法と同様に、このようなことが可能になることを望んでいました。
標準のasp.net機能を使用して実行できます。私はそれに対する1つの可能な解決策をアドバイスしようとします. まず、「Web フォーム認証」ASP.NET Authenticationをセットアップする必要があります。web.config を変更する必要があります。
<system.web>
<authentication mode="Forms">
<forms name="Custom" loginUrl="/login.aspx" />
</authentication>
</system.web>
次に、web.config とASP.NET Authorizationでメンバーの場所を指定する必要があります。
<location path="folders/memberN">
<system.web>
<authorization>
<allow roles="memberN"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
これにより、グループ「memberN」のすべてのユーザーが「folders/memberN」パスの下で作業できるようになります。
次に、メンバーシップとロール プロバイダーを web.config に追加する必要があります。メンバーシップとロール プロバイダーは、SQL サーバー プロバイダーに基づいて構成されます。
<configuration>
<connectionStrings>
<add name="SqlServices"
connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial
Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
<membership
defaultProvider="SqlProvider"
userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlProvider" />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
最後に、データベースに特別なテーブルを作成する必要があります (詳細)。
%WINDOWS%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S <server> -E -d <database> -A all