ASP.NET Web アプリケーション プロジェクトに、"Admin" フォルダーと "User" フォルダーの 2 つのフォルダーがあります。Admin フォルダの下には "Admin.aspx" ページがあり、User フォルダの下には "User.aspx" ページがあります。Account フォルダの下に「Login.aspx」という別のページがあります。このログイン ページでは、ツールボックスの組み込みのログイン コントロールを使用しました。フィールドに指定された ID とパスワードに基づいて、対応する Web ページを呼び出す必要があります。たとえば、ユーザー名を「admin」、パスワードを「password」(基本的には管理者ユーザー)として入力すると、Admin.aspx ページが読み込まれます。一方、ユーザー名が「mike」、パスワードが「mike123」の場合(基本的に一般ユーザー)、アプリケーションは User.aspx ページをロードする必要があります。「ASP.NET 構成」ウィザードを使用して、「Admin」および「User」フォルダーに必要なアクセス ルールを作成済みです。ここでの問題は、入力された ID とパスワードに基づいて、対応する aspx ページをマッピングすることです。
質問する
251 次
2 に答える
1
あなたの質問は少し曖昧です。標準の SqlMembership プロバイダーとフォーム認証を使用していると仮定しています。
Web サイト管理ツールを使用してログインを管理すると、認証メカニズムが提供されます。ユーザー ロールを構成して使用し、Web サイト機能へのアクセスを定義することをお勧めします。
ロールに応じて特定のページにリダイレクトするには、次のようにします。 Login コントロールの LoggedIn イベントを処理します。
protected void LoginControl_LoggedIn(object sender, EventArgs e)
{
try
{
if (HttpContext.Current.User.IsInRole("Site Admin"))
{
Response.Redirect("~/Admin/Admin.aspx");
}
else if (HttpContext.Current.User.IsInRole("User"))
{
Response.Redirect("~/User/User.aspx");
}
catch (Exception ex)
{
Debug.WriteLine("Exception in d: " + ex.Message);
throw;
}
}
また、web.config を使用して、サイトのセキュリティで保護されたセクションの外にある Login.aspx ページへのアクセスを提供する必要があります。
<authentication mode="Forms">
<forms name="MyApplication" loginUrl="~/Account/Login.aspx" timeout="60">
</forms>
</authentication>
これは、実装できる数多くのソリューションの 1 つにすぎません。これを行うのに役立つ多くのリソースがオンラインにあります。
于 2012-05-11T23:55:57.657 に答える
0
protected void Login1_LoggedIn(object sender, EventArgs e)
{
String[] users = Roles.GetRolesForUser(Login1.UserName);
if (users.Contains("admin"))
{
Response.Redirect("~/Admin/Admin.aspx");
}
else if (users.Contains("users"))
{
Response.Redirect("~/Secure/User.aspx");
}
}
于 2012-05-11T23:42:30.787 に答える