1人のユーザー以外のすべてのユーザーがアクセスするアクションを保護したい場合、どうすればよいですか?特定のユーザーのみがアクセスできるようにする
ユーザーが商品を持っているとします。彼らがEditProductアクションに行くと、他の誰かがそれにアクセスできないようにするにはどうすればいいですか?過去に私はいつもUser.Idenity.Name
を使い、ユーザー名とdthatを比較しました。しかし、UserName
の代わりに誰かがusername
としてログインすると、同じユーザーでも大文字小文字が区切られます。
すべての小切手で.ToUpper()
などを使用すると、非常に薄暗く非効率的です。
何の役割がまだ設定されていない場合は、すべてのユーザーが 'Users'と考えたりはデフォルトはありませんされています?言い換えれば、前もってセットアップせずに '[Authorize(Users =" username ")] 1を使用できますか? – Johannes
Johannesは、Authorizeを使用してメソッドを保護すること、または問題のユーザーが権限を持っていることを単に監査することが目的であるかどうかは不明でした(Creatorまたはその他の権限の付与方法)。デフォルトの承認アクションフィルタは、(名前または役割別に)除外に対してのみアクションを保護することができます。製品を作成したユーザーだけが製品を編集できるようにすることが目的だった場合、これは機能しませんでした。必要に応じてカスタムのAuthorizeフィルタを作成することも、データベースからデータを取得した後に独自のチェックを行うこともできます。 –
@Johannes [Authorize]は、あなたがあらゆる役割やユーザーの意味でログインしていることを監査します。 –