私のWebアプリケーションでは、登録ユーザーは新しいコンテンツを追加して後で編集することができます。私はコンテンツの作者だけが編集できるようにしたい。ログに記録されたユーザーが作成者と同じかどうかを確認するすべてのアクションメソッドにコードを手動で記述する以外に、これを行うにはスマートな方法がありますか?コントローラ全体に使用できる属性MVC 3 - 特定のユーザーのみのアクセス
4
A
答えて
6
コントローラ全体に使用できる属性はありますか?
はい、カスタム1でAuthorize
の属性を拡張することができます:
public class AuthorizeAuthorAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
{
// the user is either not authenticated or
// not in roles => no need to continue any further
return false;
}
// get the currently logged on user
var username = httpContext.User.Identity.Name;
// get the id of the article that he is trying to manipulate
// from the route data (this assumes that the id is passed as a route
// data parameter: /foo/edit/123). If this is not the case and you
// are using query string parameters you could fetch the id using the Request
var id = httpContext.Request.RequestContext.RouteData.Values["id"] as string;
// Now that we have the current user and the id of the article he
// is trying to manipualte all that's left is go ahead and look in
// our database to see if this user is the owner of the article
return IsUserOwnerOfArticle(username, id);
}
private bool IsUserOwnerOfArticle(string username, string articleId)
{
throw new NotImplementedException();
}
}
、その後:
[HttpPost]
[AuthorizeAuthor]
public ActionResult Edit(int id)
{
... perform the edit
}
0
私はなります
- 保存db.aspnet_Users colummユーザーID(GUID)コンテンツレコード
- に対して保存されたコンテンツ利用者のGuidに対してGUID現在のユーザーを確認し、あなたのコンテンツモデルの拡張メソッドを書きます
- 私はこの機能を管理ログインに上書きするコードを書いています(私は管理者ロールを作成します)。
関連する問題
- 1. 特定のユーザーのみがアクセスできるようにする
- 2. 特定のユーザーのみのイオンランドスケープビュー
- 3. 特定のファイルのみにec2 AWSユーザーへのアクセスを許可する
- 4. 特定のフォルダにのみユーザーのアクセス許可を与えます。
- 5. ジャンゴ:1つのアプリ内の特定のユーザーへのアクセスをブロック
- 6. 春のセキュリティで特定のユーザーの特定のURLにアクセスする
- 7. 特定のユーザーの特定のファイルへのアクセスを拒否する
- 8. MVC 3ユーザーのインタラクションを使用しないモデルの設定値
- 9. 特定のユーザー
- 10. 特定のユーザー
- 11. ASP.NETダイナミックデータ:特定の行のみにアクセスするアクセス
- 12. Silverlightアプリケーションからmvcアプリケーションの特定のユーザーにデータを送信
- 13. ASP.NET MVC 5-特定のユーザーのロールを取得する
- 14. 特定のユーザーへのファイルへのアクセス許可の付与
- 15. は、FTPユーザーに特定のディレクトリへのアクセス
- 16. Laravel Eager読み込み中|特定のユーザーのクエリ
- 17. 特定のユーザーのCloud Firestoreファイルにアクセスできません
- 18. は確かに特定のユーザー/顧客へのページビューのアクセス
- 19. ASP.Net MVC 3アクセスのCSS、JSファイル
- 20. ASP.NET MVC 3 - ルートの設定
- 21. データベース設計:特定のページへのアクセスを持つユーザー
- 22. htaccess特定のユーザーへのアクセスを許可する
- 23. 特定のASP .NET MVC 3フィールドの認可を設定していますか?
- 24. Odoo-特定のビューのみのユーザへのアクセス
- 25. Asp.net MVCユーザーが特定の条件でアプリケーション全体にアクセスするのをブロックする
- 26. 特定のToolStripMenuアイテムを特定のユーザーに限定する
- 27. 特定のユーザーのAndroidアプリのみをリリースする方法。
- 28. 特定のデータベースのユーザーのみを作成できますか?
- 29. Asp.netコア特定のユーザーのみのWindows認証
- 30. django-allauth:特定のGoogleアプリドメインのユーザーのみを許可する
コントローラやアクション属性は、個々のポストのコンテキストを持っていないでしょう一般的には誰がログインしたのかということです。あなたはそれを世話するだろう属性を探す上でアクションを作っている投稿と作者を比較する方が良いです。 –