Проверка подлинности с помощью форм - сделать запрос GET безопасным - PullRequest
0 голосов
/ 14 февраля 2012

Я новичок в проверке подлинности с помощью форм и испытываю трудности с этой проблемой:

У меня есть маршрут, настроенный так:

routes.MapRoute(
       "Account", // Route name
       "Account", // URL with parameters
       new { controller = "Account", action = "MyAccount", username = UrlParameter.Optional } // Parameter defaults
);

действие MyAccount:

[Authorize]
public ActionResult MyAccount(MyAccountModel model, string username)
{
    // Do stuff with username and model
}

Я заметил уязвимость в том, что пользователь мог перейти:

../Account/MyAccount?username=test

И укажите любое имя пользователя для получения информации об этом пользователе. Можно ли как-нибудь обезопасить это? Мне нужно передать это имя пользователя этому методу, чтобы получить информацию от моего провайдера пользовательского членства

1 Ответ

3 голосов
/ 14 февраля 2012

Похоже, что вы хотите сделать, это проверить, совпадает ли имя пользователя с именем аутентифицированного пользователя. Примерно так:

[Authorize] 
public ActionResult MyAccount(MyAccountModel model, string username) 
{ 
    if (User.Identity.Name == username)
    {
        // Display account information
    }
} 
...