我不是程序员,但出于某种原因,我在这里开始编程,以便做一些让工作变得更轻松的应用程序。无论如何,这个“一些应用程序”在几年内变得越来越大。我在理解安全性或与身份验证相关的事情上总是遇到问题,所以我按照自己的方式去做(这确实远远不是正确的方式)。我使用C#,主要是使用WCF的客户端/服务器应用程序。
现在的问题出在我在WCF中的方法中。所有这些都与此类似:
public Employee AddEmployee(Guid sessionID, Employee emp)
{
Session session = Common.CheckSession(sessionID);
// do stuff
}
如您所见,sessionID传递给每次调用WCF。一旦用户使用另一个WCF方法登录,就会生成此ID。创建数据库中的一行,并在每个方法中调用的“CheckSession”检查会话是否有效以及是否允许用户等等。使用SSL保护连接。
这有多错?我现在可以继续这样做吗?或者我应该停止它,因为它是如此混乱,并开始找出正确的方法吗?
答案 0 :(得分:0)
如果你眯着眼睛并将头转向一边,这就是认证的工作方式。
除外,WCF使用加密层发送消息,因此没有人可以监视您的会话/身份验证/数据信息
它执行类似的检查,而不是每次调用,但它在开始时挂钩调用(您也可以这样做),检查身份验证,然后在允许的情况下将其传递。
这只是为了进行身份验证(确定你就是你说的那个人)。安全性,是否允许特定用户执行特定操作是通过“角色”之类的东西来控制的。但是,如果您有更细粒度的安全问题,则可能需要构建更多检查。
现在自己发明一下?不是个好主意。你的方法太容易漏洞了。