【问题标题】:Security and authentication methods I use我使用的安全和身份验证方法
【发布时间】: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 会话状态一样安全...感觉不对,因为您有身份验证和功能合并到单个参数列表中......

标签: c# wcf security session


【解决方案1】:

如果您眯起眼睛并将头转向一边,这就是身份验证的工作原理。

除了,WCF 使用加密层来发送消息,因此没有人可以窥探您的会话/身份验证/数据信息

它会进行类似的检查,而不是每次调用,但它会在一开始就挂钩调用(您也可以这样做),检查身份验证,然后在允许的情况下将其传递。

那只是为了验证(确定你就是你所说的那个人)。安全性,是否允许特定用户执行特定操作是通过“角色”之类的东西来控制的。但如果您有更细粒度的安全问题,您可能需要构建更多检查。

现在是你自己发明的?不是一个好主意。你的方法太容易有漏洞了。

【讨论】:

  • 谢谢,关于从哪里开始解决这个问题的任何提示?如何使用 WCF 附带的内置内容来实现此目的的示例?
  • 我发现 WCF 是参与度更高的技术之一,可以让您了解这些东西。如果适合,您可以使用更现代的 WebAPI,它更简单一些。 WCF 要广泛得多,这迫使您必须更好地理解事物。从记忆中,我主要使用msdn.microsoft.com/en-us/library/dd456779(v=vs.110).aspx 和大量的谷歌搜索示例/澄清/和匹配我想要实现的配置(那里有很多)
猜你喜欢
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多