1

私はServiceStackを使用していますが、ServiceStackパーミッションサポートを使用したこの要件について、自分のやり方が正しいかどうかわかりません。

これで、ルールテーブルの構造は次のようになります。

  • TargetRole
  • TargetUserId
  • 拒否/許可
  • ActionTypeEnum
  • 開始日
  • 終了日
  • StartHour
  • EndHour

  • RunningEnum([Flags] OnlyOnce = 1、Monday = 2、....、Sunday = 128)

ルール:すべての管理者は、毎週月曜日(RUNNINGENUM = 2)の12〜17時間(STARTHOUR = 12、ENDHOUR = 17)にcrateUser(ACTIONTYPEENUM.CREATEUSER)を(拒否)できませんでした。

したがって、これらのルールを解決する必要があります(そして、ServiceStack Permissionでバインドする必要がある場合)、途中で問題が発生したり、C#のフレームワークやルールリゾルバーが改善されたりしますか?

4

2 に答える 2

1

ServiceStackのRequireRole属性とRequiredPermissions属性を使用すると、サービスに必要なロール/権限をマークできます。RequireRoleの実装は、IAuthSession.HasRole() (またはIAuthSession.HasPermission())を呼び出すだけで、ユーザーが指定された役割を持っているかどうかを判断します。

独自のCustomUserSessionを登録すると、上記のメソッドを実装して、必要なことを正確に実行できます。

別の方法は、既存の役割/権限のサポートを無視し、独自の要求フィルター属性を作成して、検証する各要求の前に実行させることです。

于 2012-07-19T16:25:45.713 に答える
0

C#でACLを実装するためのフレームワークはありません。あなたはあなた自身を書かなければなりません!私もそうです :)

于 2012-07-29T16:53:18.200 に答える