【问题标题】:Asp.net web services, how to keep some members privateAsp.net 网络服务,如何保持某些成员的私密性
【发布时间】:2012-01-18 10:50:08
【问题描述】:

我有一个 asp.net 网络服务项目。这个项目包含一些在他们自己的文件中声明的类。其中一个类称为 clsUser。

clsUser 由字符串 firstName、字符串 passWord 和启用的 bool 组成(实际上更多,但只是为了保持简单)。我希望客户端代码的创建者能够访问 firstName 和 passWord 成员以便进行更改,但我不希望他们访问启用的 bool。

所以我公开了 firstName 和 passWord,并启用了 internal(以便我可以在我的 Web 服务代码中访问它)。问题是,我必须使用 MonoDevelop 在我们的 linux 服务器上启动这个 .Net Web 服务,并且 Mono 看不到任何声明为内部的内容。

是否有另一种方法可以让我的网络服务代码中的某些成员可以访问,但对客户隐藏它??

【问题讨论】:

  • 您应该考虑的次要代码事项。 1. 将“cls”放在用户前面。它什么也没增加,目前被 MS 和许多其他人认为是邪恶的。 2.关于“密码”。通常,您会利用分词器。密码实际上是一个词,所以正确的方法是只称它为“密码”.. 除非它是公共财产,此时它应该是“密码”

标签: asp.net web-services monodevelop


【解决方案1】:

创建一个单独的“代理”类,其中仅包含您愿意公开的成员,并返回从原始 clsUser 实例填充的实例,而不是 clsUser 的实例。

【讨论】:

  • 感谢您的回复。很抱歉问,但你能发布一个简短的例子吗?我想我知道你的意思,但我想 100% 确定。
  • 如果您有一个具有UserNameUserIDPassword 属性的类,这是用户对象(或其他)的主要“模型”,那么只需创建一个名为UserLite(或其他东西)可以从主类填充并用作服务的实际返回类型。换句话说,几乎完全相同的类,除了没有Password 属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多