2009-09-16 18 views
5

これはどこでも説明されているようなものかもしれませんが、私はasp.net/learnビデオをたくさん見ています - それでも、この「会員資格」がどのように結びついているかを説明する欠けているものがあります。ASP.NETユーザー/メンバーシップ/メンバーシップユーザー/セキュリティ/プリンシパル/プロファイル...ヘルプ

一方で、ロールやユーザーなどを作成することができる組み込みの.netユーザー管理があります。一方、そのユーザーを取得してセッションを保存することは奇妙な作業です私が読んだものから、あなた自身の「プリンシパル」オブジェクトなどを作成することを含む。

誰もが理解と時間を持っているなら、彼らは私たちにこの。たぶん一緒に結びつける方法...文字列のユーザー名/パスワードを使用してアカウントが存在するかどうかを確認したり、ログインしたり、アクションの正しい役割にあるかどうかをチェックしたり、ユーザーの役割をすべて取得するにはどうすればよいですかの一部ですか?

私はこの問題が既に.netユーザーのことをよく理解している人たちとうまくいかないかもしれないが、助けてくれれば答えてください。

事前に感謝します。 peteski

答えて

6

独自のプリンシパルオブジェクトを作成する必要はありません。すぐに使用できるのは、すぐに使用できる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を永続化するかどうかを示すブール値ですブラウザには表示されません。

元の回答を明確にすることを願っています。

+0

こんにちは。どのページからユーザーをリダイレクトしたくないのですが、Page.Userを設定する方法(つまりログインさせる方法)です。 RedirectFromLoginPageはこれを行いますか? (インテリジェンスはそれを明確にしません)。 私はメンバーシップの各部分が何をしているのかについての説明も探していました。しかし、これまでのあなたの応答に感謝します!とても有難い! – peteski

+0

私は、これを発見しました。 FormsAuthentication.SetAuthCookie(); 私は 'ユーザーをログインする'ことができます。私は別の役割などを処理するロジックを追加できる同じページにリダイレクトします。 – peteski

関連する問題