segurança viewmodel em mvc asp.net

votos
0

Existe uma diferença em termos de segurança entre esses dois modelos a ser dado a Ver? Ie. no segundo exemplo pode um webuser / hackers acessar os métodos de alguma forma?

public class ObjectViewModel
  { 
   public PropertyA {get;set;}
   public PropertyB {get;set;}
   public PropertyC {get;set;}
  }



public class ObjectViewModel2
  {
   public PropertyA {get; private set;}
   public PropertyB {get; private set;}
   public PropertyC {get; private set;}

   private void SetPropertyA()
   {
      ...GetDataFromRepository();
   } 

   private void SetPropertyB()
   {
      ...GetDataFromRepository();
   } 

   private void SetPropertyC()
   {
      ...GetDataFromRepository();
   } 
}
Publicado 19/05/2009 em 18:11
fonte usuário
Em outras línguas...                            


3 respostas

votos
4

Primeiro, o modelo em si não é exposto para o navegador web. É só exposta ao motor de renderização vista que reside no servidor. Você pode expor o acesso através de suas ações a certas propriedades em seu modelo, mas estes são apenas através de parâmetros de consulta ou formulário. Não vai dar acesso aos métodos subjacentes.

Em segundo lugar, uma coisa que você deve saber é que o fichário de modelo padrão exige que todas as propriedades que pretende definir estar disponível via acessores públicos. Se você fizer uma propriedade com um setter privado, não vai atualizado via o fichário de modelo.

Respondeu 19/05/2009 em 18:33
fonte usuário

votos
1

Quando contornando o mecanismo de exibição e retornar algo como um Json (modelo) ou XmlResult (modelo) você pode expor seus dados. No entanto, uma vez que seus dados estão sendo serializada seus métodos de vista modelo não se aplicam mais.

Respondeu 19/05/2009 em 18:54
fonte usuário

votos
1

Não, esses métodos não podem ser acessados ​​de qualquer forma através de uma exibição menos que você diga explicitamente.

A menos que seu controlador expõe especificamente esses métodos, apenas as propriedades estão disponíveis via Model Binding.

Respondeu 19/05/2009 em 18:13
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more