【发布时间】:2013-12-12 12:32:56
【问题描述】:
我不是程序员,但出于某种原因,我在工作中编写程序是为了做一些让工作更轻松的应用程序。无论如何,这个“一些应用程序”多年来一直在变大。我一直在理解安全或身份验证相关的事情方面遇到问题,所以我按照自己的方式去做(这确实远非正确)。我使用 C#,主要用于使用 WCF 的客户端/服务器应用程序。
现在的问题在于我在 WCF 中的方法。都是这样的:
public Employee AddEmployee(Guid sessionID, Employee emp)
{
Session session = Common.CheckSession(sessionID);
// do stuff
}
如您所见,sessionID 被传递给对 WCF 的每次调用。一旦用户使用另一种 WCF 方法登录,就会生成此 ID。在数据库中创建一行,并在每个方法中调用的“CheckSession”检查会话是否有效以及用户是否被允许等等。使用 SSL 保护连接。
这是怎么回事?我现在可以继续做吗?还是我应该停止它,因为它太乱了,然后开始找出正确的方法?
【问题讨论】:
-
大错特错,是的,不,是的 - 与现有的身份验证系统集成可能会更好 - 通常可能无法验证 guid 是否具有正确的权限(您也确实存储并检查对每个请求)。
-
@AlexeiLevenkov“现有的认证系统”,请定义。并且每次调用 WCF 服务都会发送 guid。
-
如果您在 Windows 世界中,您可以对每个请求进行身份验证,而不是传递自定义令牌...但是在其他方面看起来与常规 ASP.Net 会话状态一样安全...感觉不对,因为您有身份验证和功能合并到单个参数列表中......