0

1- AuthorizeUserAttribute.cs是類服裝授權屬性拋出HTTP錯誤403.14 - 禁止後創造新的紀錄

public class AuthorizeUserAttribute : AuthorizeAttribute 
{ 
    public string AccessLevel { get; set; } 

    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var isAuthorized = base.AuthorizeCore(httpContext); 
     if (!isAuthorized) 
      return false; 

     if (this.AccessLevel.Contains("Admin")) 
     { 
      return true; 
     } 
     else return false; 
    } 

2 - 這是我的控制器

[AuthorizeUser(AccessLevel = "Admin")] 
public class ProductsController : Controller 
{ 
    private DataBaseContext db = new DataBaseContext(); 
    public ActionResult Index() 
    { 
     var product = db.Product.Include(p => p.ProductGroup); 
     return View(product.ToList()); 
    } 
} 
[AuthorizeUser(AccessLevel = "Admin")] 
    public ActionResult Create([Bind(Include = "Product_Id,ProductName,Description,PicUrl,Group_Id")] Product product) 
    { 
     if (ModelState.IsValid) 
     { 
      db.Product.Add(product); 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     ViewBag.Group_Id = new SelectList(db.ProductGroups, "Group_Id", "GreoupName", product.Group_Id); 
     return View(product); 
    } 

3 FilterConfig.cs在START_UP夾

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new AuthorizeAttribute()); 
     filters.Add(new AuthorizeUserAttribute()); 

    } 

} 

4- Global.asax.cs中

void Application_Start(object sender, EventArgs e) 
    { 
     // Code that runs on application startup 
     AreaRegistration.RegisterAllAreas(); 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
     RouteConfig.RegisterRoutes(RouteTable.Routes);  
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier; 

    } 

5 Admin1Controller.cs用於登錄,等...

[HttpPost] 
    public ActionResult Login(LoginViewModel model) 
    { 
     if (!ModelState.IsValid) //Checks if input fields have the correct format 
     { 
      return View(model); //Returns the view with the input values so that the user doesn't have to retype again 
     } 

       if(model.Email == "[email protected]" & model.Password == "@1234psm") 
        { 
       var identity = new ClaimsIdentity(new[] { 
               new Claim(ClaimTypes.Name,"Admin"), 
               new Claim(ClaimTypes.Email, "[email protected]"), 
               new Claim(ClaimTypes.Role,"Admin") 

               }, "ApplicationCookie"); 

       var ctx = Request.GetOwinContext(); 
       var authManager = ctx.Authentication; 
       authManager.SignIn(identity); 

         return Redirect(GetRedirectUrl(model.ReturnUrl)); 
        } 
     ModelState.AddModelError("", "incorrect UserName or pass"); 
     return View(model); 


    } 
private string GetRedirectUrl(string returnUrl) 
    { 
     if (string.IsNullOrEmpty(returnUrl) || !Url.IsLocalUrl(returnUrl)) 
     { 
      return Url.Action("index", "Admin1"); 
     } 
     return returnUrl; 
    } 

後創建新的產品,並返回到產品/節目HTTP錯誤403.14 - 禁止頁面。 而寫產品/指數顯示正確的頁面

+0

哪裏是示數行? – user3378165

+0

顯示HTTP錯誤403.14 - 創建產品後的禁止頁面 –

回答

0

儘量讓一切公開,看看錯誤改變

+0

不工作... :( –

相關問題