初心者が一番使いやすいASPについてNETロールベースフォームセキュリティ認証メカニズムDemo
5380 ワード
第一歩:データベース構築テーブルテスト用(以下のコードは直接copyでt-sqlで生成すればよい)
ステップ2:コードの作成
空のソリューションを作成し、Webアプリケーションを追加します.アプリケーションの下にloginがあります.aspx、default.aspx、webForm1、Global.aspx、Webconfig
次の図を示します.
login.aspxページbutton 1_Clickイベントコードは次のとおりです.
defalt.aspx Page_Loadイベントコードは次のとおりです.
ステップ3:構成
Globalを変更する必要があります.aspxファイル.Webアプリケーションにこのファイルがない場合は、Webアプリケーションを右クリックして「追加」>「新規の追加」>「Global Application Class」を選択します.GlobalでaspxまたはGlobal.aspx.csで、Application_を見つけます.AuthenticationRequestの方法.まず、システムを交換または使用することを確認する.Security.PrincipalおよびSystem.Web.Securityネーミングスペース、それからそれを修正して、修正したコード:
次に、Webアプリケーションのルートディレクトリの下にあるWeb.configファイルにノードの下の
,これを
次に、Admin、Userフォルダの下にwebconfigプロファイルを1つずつ追加します.
Adminファイルの下ノード挿入コードは以下の通りです: Userファイルの下ノード挿入コードは以下の通りです: 次に、ユーザーのロール権限をテストするために2つのフォルダにそれぞれいくつかの画像を追加し、コードがほぼ完了しました.
ステップ4:テスト
•テストユーザ名パスワードは(ユーザ名:adminパスワード:pwd 123権限:管理者)(ユーザ名:lisaaiパスワード:pwd 123権限:一般会員)
Create DATABASE WebSolution
GO
USE [WebSolution]
GO
/****** : Table [dbo].[Users] : 04/07/2016 15:16:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[Password] [nvarchar](150) COLLATE Chinese_PRC_CI_AS NULL,
[UserRoles] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK__Users__00551192] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ステップ2:コードの作成
空のソリューションを作成し、Webアプリケーションを追加します.アプリケーションの下にloginがあります.aspx、default.aspx、webForm1、Global.aspx、Webconfig
次の図を示します.
login.aspxページbutton 1_Clickイベントコードは次のとおりです.
string strcon = "Data Source=.;Initial Catalog=WebSolution;Persist Security Info=True;User ID=sa;Password=123;";
protected void Button1_Click(object sender, EventArgs e)
{
FormsAuthentication.Initialize();
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select UserRoles from Users where userName=@username" +" and Password=@password ";
cmd.Parameters.Add("@username", SqlDbType.NVarChar, 100).Value = this.TextBox1.Text;
cmd.Parameters.Add("@password", SqlDbType.NVarChar, 150).Value = FormsAuthentication.HashPasswordForStoringInConfigFile(this.TextBox2.Text, "md5");
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, this.TextBox1.Text.ToString(), DateTime.Now, DateTime.Now.AddMinutes(1), true, reader.GetString(0), FormsAuthentication.FormsCookiePath);
string strticket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, strticket);
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["ReturnUrl"];
if (returnUrl == null)
{
returnUrl = "./";
}
Response.Redirect(returnUrl);
this.Label3.Text = " ";
}
else
{
this.Label3.Text = " , !";
}
reader.Close();
conn.Close();
}
</span>
defalt.aspx Page_Loadイベントコードは次のとおりです.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (User.IsInRole("Administrator"))
{
Response.Write(" ");
}
else if (User.IsInRole("User"))
{
Response.Write(" ");
}
}
}
ステップ3:構成
Globalを変更する必要があります.aspxファイル.Webアプリケーションにこのファイルがない場合は、Webアプリケーションを右クリックして「追加」>「新規の追加」>「Global Application Class」を選択します.GlobalでaspxまたはGlobal.aspx.csで、Application_を見つけます.AuthenticationRequestの方法.まず、システムを交換または使用することを確認する.Security.PrincipalおよびSystem.Web.Securityネーミングスペース、それからそれを修正して、修正したコード:
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id =
(FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket ticket = id.Ticket;
// ,
string userData = ticket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new GenericPrincipal(id, roles);
}
}
}
}
次に、Webアプリケーションのルートディレクトリの下にあるWeb.configファイルに
次に、Admin、Userフォルダの下にwebconfigプロファイルを1つずつ追加します.
Adminファイルの下
ステップ4:テスト
•テストユーザ名パスワードは(ユーザ名:adminパスワード:pwd 123権限:管理者)(ユーザ名:lisaaiパスワード:pwd 123権限:一般会員)