独自のプリンシパルオブジェクトを作成する必要はありません。すぐに使用できるのは、すぐに使用できるMemberhipProvider(例:SQLMembershipProvider)を使用してユーザーを管理し、必要に応じてRoleProvider(例:SQLRoleProvider)を使用してユーザーの認可を設定することだけです。
ユーザーを取得するには、セッションに格納する必要はありません。 Page.Userを使用して、現在のユーザーの基本情報(名前、IsAuthenticated)を取得してください。ユーザー資格情報が正しければ、あなたはログオンするには
Membership.ValidateUser(username,password).
を使用することができ、ユーザがいるかどうかを確認するに
、私はあなたが提供するASP.NETログインコントロールを使用することをお勧めしかし、あなたはあなたに少しで独自のログインをコーディングすることができますより多くの仕事。
if (Membership.ValidateUser(UsernameTextbox.Text, PasswordTextbox.Text))
FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);
else
Msg.Text = "Login failed. Please check your user name and password and try again.";
PS:例では、ユーザーがアクションを実行できるかどうかを確認するために、最後にMSDN
から来て、あなたが
RoleProvider.IsUserInRole(username,rolename)
あなたを使用しますが、フォーム認証を使用する場合、それはのようなものですweb.configの設定承認によってリソース(ページ、ファイル、フォルダなど)へのアクセスを制御することもできます。例:
<承認> < deny users = "?" /> <は役割が= "管理者" /> <拒否するユーザー= "*" /> < /承認>
・ホープこのヘルプを許可し、それを明確に
ない場合はより多くの情報を求めること自由に落ちました編集
あなたのコメントに答えるためには、ここではそれがどのように動作するかです:
ます。ユーザーは認証Cookieを使用して、現在ログに記録されているユーザーを識別します。このCookieはFormsAuthentication.RedirectFromLoginPageで自動的に設定されますが、リダイレクトせずに現在のユーザーのみを設定する場合は、FormsAuthentication.SetAuthCookie(userName、persistentCookie)を手動で呼び出すことができます。persistentCookieは、このCookieを永続化するかどうかを示すブール値ですブラウザには表示されません。
元の回答を明確にすることを願っています。
こんにちは。どのページからユーザーをリダイレクトしたくないのですが、Page.Userを設定する方法(つまりログインさせる方法)です。 RedirectFromLoginPageはこれを行いますか? (インテリジェンスはそれを明確にしません)。 私はメンバーシップの各部分が何をしているのかについての説明も探していました。しかし、これまでのあなたの応答に感謝します!とても有難い! – peteski
私は、これを発見しました。 FormsAuthentication.SetAuthCookie(); 私は 'ユーザーをログインする'ことができます。私は別の役割などを処理するロジックを追加できる同じページにリダイレクトします。 – peteski