0
カスタムAuthorizAttributeを作成し、AuthorizeCoreをオーバーライドしようとしています どこでもうまく動作しますが、どこでも がアクセスしましたが、それは私がそこに行くことを可能にする。私がURL「http://localhost:8758/Classified/Attributes」を押すと、管理者の役割が必要になりますが、私のコードは管理者の役割なしでアクセスできます。 何か問題が起こっていますか? ここに私のコードです。AuthorizeCoreをカスタム権限でオーバーライドしますが、URLからの直接アクセスを許可します
using System;
using System.Web;
using System.Web.Mvc;
using Classified.Web.Services;
namespace Classified.Web
{
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public IFormsAuthenticationService AuthenticationService { get; set; }
public string RequiredRole;
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null) throw new ArgumentNullException("httpContext");
AuthenticationService = new FormsAuthenticationService(new HttpContextWrapper(HttpContext.Current));
var user = AuthenticationService.GetAuthenticatedUser();
if (user == null)
return false;
foreach (var i in user.Roles)
{
if (i.RoleName == RequiredRole)
{
return true;
}
}
return false;
}
}
HUH ............私は私の自己によって答えを得ました:)... –