2013-02-15 2 views
1

I already asked Аналогичный вопрос, но мне интересно, можно ли упростить решение. Как вы уже заметили, я хочу убедиться, что зарегистрированный пользователь имеет доступ ТОЛЬКО к своим данным. Я использую пользовательский поставщик членства в mvc3.убедитесь, что зарегистрированный пользователь имеет доступ только к своим данным

[Authorize(Users=httpContext.User.Identity.Name)] 
public ActionResult UserArea() 
{} 

Благодаря

ответ

0

Создайте новый атрибут и переопределить AuthorizeCore метод:

public class CustomAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContext.User user) 
    { 
    // Generally authenticated to the site 
    if (!httpContext.User.Identity.IsAuthenticated) { 
     return false; 
    } 

    return true; 
    } 
} 

Затем на вашем контроллере сделать:

[CustomAuthorize(httpContext.User] 
public ActionResult MyControllerAction() 
{ 
    return View(); 
} 

http://code.commongroove.com/2012/04/20/asp-net-mvc-simple-custom-authorization-by-inheriting-from-the-authorizeattribute/

Смежные вопросы