私は MVC に非常に慣れていません。これは、MVC を使用してサイトを作成する最初の試みであり、単純なメンバーシップです。私が扱っている要件は、役割と権限の両方を使用する必要があるということです。
そのため、役割と同じように機能する追加の承認方法が必要です。たとえば、これが機能する必要があります: [AuthorizeUser(Permission = "Browse")]
カスタム承認属性を作成するための例を複数見つけましたが、これまでのところ、実際に機能したものはありません。渡された値が失われ、null 値の例外が発生し続けます。
同様の質問が複数見つかりましたが、それらで見つけたコードが機能しません。以下は、さまざまなスタックオーバーフローの質問にあるコードに基づいて試したサンプルです。
public class AuthorizeUser : AuthorizeAttribute
{
public string AccessLevel { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
var isAuthorized = base.AuthorizeCore(httpContext);
if (!isAuthorized)
{
return false;
}
// My method to get permisions
userPermissions=getpermsions();
if (userPermissions.Contains(this.Permission))//**** problem line
{
return true;
}
else
{
return false;
}
}
}
問題は次の行です: if (userPermissions.Contains(this.Permission))
this.Permission は常に null です。これの複数のバリエーションを試しましたが、常に null です。
他の代替手段を使用できますが、これが機能しないことに夢中になっています。そうあるべきだと思われます。