タグ付けされた質問 「forms-authentication」

9
ASP.NET MVC-カスタムIIdentityまたはIPrincipalを設定する
かなり単純なことをする必要があります。ASP.NETMVCアプリケーションで、カスタムIIdentity / IPrincipalを設定します。どちらか簡単な方が適しています。User.Identity.Idandのようなものを呼び出すことができるように、デフォルトを拡張したいと思いますUser.Identity.Role。特別なものはありません。 たくさんの記事や質問を読みましたが、実際よりも難しくなっているように感じます。簡単だと思いました。ユーザーがログオンした場合、カスタムIIdentityを設定したいと思います。だから私Application_PostAuthenticateRequestは自分のglobal.asaxに実装するつもりだと思った。ただし、それはすべての要求で呼び出され、データベースからすべてのデータを要求してカスタムIPrincipalオブジェクトに入れるすべての要求でデータベースを呼び出したくありません。それも非常に不必要で、遅く、間違った場所(データベースの呼び出しを行う)のようですが、私は間違っている可能性があります。または、そのデータはどこから来ますか? そのため、ユーザーがログインするたびに、必要な変数をセッションに追加でき、それをApplication_PostAuthenticateRequestイベントハンドラーのカスタムIIdentityに追加すると思いました。しかし、私Context.Sessionはnullそこにいるので、それも進むべき道ではありません。 私はこれに1日間取り組んでおり、何かが足りないように感じています。これは難しいことではないでしょう?また、これに付属している(準)関連のすべてのものにも少し混乱しています。MembershipProvider、MembershipUser、RoleProvider、ProfileProvider、IPrincipal、IIdentity、FormsAuthentication...アム私のすべてこれは非常に混乱見つかっただけ? 誰かが私に、IIdentityに余分なデータを保存するためのシンプルでエレガントで効率的なソリューションを教えてくれれば、余分なファズをすべてなくすことができるといいですね。SOにも同様の質問があることは知っていますが、必要な答えがそこにある場合は、見落としているに違いありません。


23
FormsAuthentication.SignOut()がユーザーをログアウトしない
これに対して私の頭は少し長すぎました。ユーザーがFormsAuthentication.SignOutを使用してログアウトした後、サイトのページを閲覧できないようにするにはどうすればよいですか?私はこれがそれをすることを期待します: FormsAuthentication.SignOut(); Session.Abandon(); FormsAuthentication.RedirectToLoginPage(); しかし、そうではありません。URLを直接入力しても、ページを閲覧できます。私はしばらくの間、自分でロールするセキュリティを使用していなかったので、これが機能しない理由を忘れています。

4
ASP.NET MVCで動的ログインURLにリダイレクトする方法
クライアントのページをホストするマルチテナントWebサイトを作成しています。URLの最初のセグメントは、次のURLルーティングスキーマを使用してGlobal.asaxで定義された、クライアントを識別する文字列になります。 "{client}/{controller}/{action}/{id}" これは、/ foo / Home / IndexなどのURLで正常に機能します。 しかし、[Authorize]属性を使用すると、同じマッピングスキームを使用するログインページにリダイレクトしたいと思います。したがって、クライアントがfooの場合、ログインページは、web.configで定義された固定の/ Account / Loginリダイレクトではなく、/ foo / Account / Loginになります。 MVCはHttpUnauthorizedResultを使用して401無許可ステータスを返します。これにより、ASP.NETがweb.configで定義されたページにリダイレクトされると思います。 では、ASP.NETログインリダイレクトの動作をオーバーライドする方法を知っている人はいますか?または、カスタム認証属性を作成してMVCでリダイレクトする方が良いでしょうか? 編集-回答: .Netソースを少し調べた後、カスタム認証属性が最良のソリューションであると判断しました。 public class ClientAuthorizeAttribute: AuthorizeAttribute { public override void OnAuthorization( AuthorizationContext filterContext ) { base.OnAuthorization( filterContext ); if (filterContext.Cancel && filterContext.Result is HttpUnauthorizedResult ) { filterContext.Result = new RedirectToRouteResult( new …

4
ユーザーが「ログイン」していることを確認する方法は?
ASP.NETアプリケーションで以下の方法でフォーム認証を使用しています FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true); ユーザーがログインしているかどうかを確認するにはどうすればよいですか?また、ログインしたユーザーのユーザー名を取得するにはどうすればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.