私の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. MVC 3ユーザーのインタラクションを使用しないモデルの設定値
- 3. ASP.NETダイナミックデータ:特定の行のみにアクセスするアクセス
- 4. は、FTPユーザーに特定のディレクトリへのアクセス
- 5. 特定のユーザーへのファイルへのアクセス許可の付与
- 6. Silverlightアプリケーションからmvcアプリケーションの特定のユーザーにデータを送信
- 7. は確かに特定のユーザー/顧客へのページビューのアクセス
- 8. データベース設計:特定のページへのアクセスを持つユーザー
- 9. htaccess特定のユーザーへのアクセスを許可する
- 10. ASP.Net MVC 3アクセスのCSS、JSファイル
- 11. ASP.NET MVC 3 - ルートの設定
- 12. 特定のToolStripMenuアイテムを特定のユーザーに限定する
- 13. 特定のASP .NET MVC 3フィールドの認可を設定していますか?
- 14. django-allauth:特定のGoogleアプリドメインのユーザーのみを許可する
- 15. 特定のユーザーのSHGetFolderPath()
- 16. Rails 3 Join - 特定の列のみを選択します。
- 17. Asp.net MVCユーザーが特定の条件でアプリケーション全体にアクセスするのをブロックする
- 18. 特定のユーザーにのみ表示されるリンクですか?
- 19. 特定のファイルにのみアクセス可能にしますか?
- 20. 更新特定のユーザーFOSuserbundle
- 21. MVC 3編集ビューのみが
- 22. のasp.net MVC 3かみそりカスタムヘルパー
- 23. MVC 3メンバーシップとオーソリゼーション
- 24. 特定のURL(アクセス権)にアクセスするときにのみCCKフィールドを表示
- 25. ASP.NET MVC 3の特定のコントローラのカスタムHTTPモジュールを有効にする方法
- 26. MVC 3アプリケーションで特定の環境でのみNinjectから「No controller returned error」を取得する
- 27. 認証されたユーザーのみがdjangoの特定のページにアクセスすることを許可します
- 28. 特定のユーザーが特定のセッションでアクセスしたページの数を知る方法
- 29. Rails 3で特定の役割を持つユーザーにアクセスするにはどうすればよいですか?
- 30. ASP.NET MVCデータベースの変更後に特定のユーザーのビューを更新する
コントローラやアクション属性は、個々のポストのコンテキストを持っていないでしょう一般的には誰がログインしたのかということです。あなたはそれを世話するだろう属性を探す上でアクションを作っている投稿と作者を比較する方が良いです。 –