2

ログイン コントロールなしでフォーム認証を使用する方法。自分のサイトで asp.net ログイン コントロールを使用したくありません。しかし、フォーム認証を実装し、データベース内のユーザーを検証する必要があります。

4

2 に答える 2

5

ログイン コントロールを使用する代わりに、いくつかのテキスト ボックス (ユーザー名/パスワードなど) とログオン ボタンを使用していると想定しています。コードは次のようになります。

あなたのaspxファイルで

<asp:Textbox runat="server" ID="Username"/>
<asp:Textbox runat="server" ID="Password"/>
<asp:Button runat="server" ID="Login" OnClick="Login_OnClick"/>

<asp:Label runat="server" ID="Msg" >

そしてサーバー側では:

public void Login_OnClick(object sender, EventArgs args)
{
if (Membership.ValidateUser(Username.Text,Password.Text))
{
     FormsAuthentication.RedirectFromLoginPage(Username.Text,
     NotPublicCheckBox.Checked);
}
else
Msg.Text = "Login failed.";
}

フォーム認証は通常、次の 2 つの部分で構成されます。

  • メンバーシップ API を呼び出してユーザーを認証/検証する
  • FormsAuthentication API を使用してユーザーをログオンさせる (認証 Cookie の作成など)

詳細については、次の記事を参照してください。

于 2012-04-11T06:08:46.337 に答える
1

  <forms

  loginUrl ="~/Login.aspx"
  cookieless= "AutoDetect" 
  slidingExpiration="true"
  timeout="10"
   protection ="All"
  />

</authentication>
<authorization>
  <deny users ="?" />
  <allow users="*" />
</authorization>

loginUrl-->そこにログインページを使用します。デフォルトはLogin.aspxです。ログインボタンまたはサインインボタンをクリックすると、データベースから資格情報を確認した後にこれを使用します

        HttpCookie authCookie = FormsAuthentication.GetAuthCookie(txtUsername.Text, false);
        FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);
        FormsAuthenticationTicket newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent,"");
        authCookie.Value = FormsAuthentication.Encrypt(newTicket);
        Response.Cookies.Add(authCookie);
        string redirUrl = FormsAuthentication.GetRedirectUrl(txtUsername.Text, false);
        Response.Redirect(redirUrl);

ここでは、必要に応じて web.config を構成するための追加情報を見つけることができます。 フォーム認証

于 2012-04-11T05:56:58.527 に答える