【问题标题】:Restrict Access in WCF using FormsAuthenticationTicket, or other method?使用 FormsAuthenticationTicket 或其他方法限制 WCF 中的访问?
【发布时间】:2013-08-12 07:16:46
【问题描述】:

我看到了一些解决方案,您可以使用 asp.net 中的成员身份限制 WCF 中的访问。(How do I restrict access to some methods in WCF?) 但我想知道使用 FormsAuthenticationTicket 是否有类似的东西。

我没有在我的网站上配置 Membership,我正在使用 FormsAuthenticationTicket 和 WCF 中的方法登录等等。

WCF 服务未配置为使用 SSL YET,因为我工作的人没有通过我们的托管公司购买证书(不知道是否相关)

主要是我需要保护我的 WCF 服务中的一些方法免受未经授权的访问,如果有另一个更简单的解决方案,我希望能对此提供一些意见。

我对 WCF 和整体安全性非常陌生,但熟悉 ASP.NET 和 C#。 我很想得到一些教学性的答案,而不仅仅是一个解决方案或想法

更新: 我的解决方案的一些 pastebin 链接:

wcf.svc http://pastebin.com/S3bTPKaV

wcf 网络配置: http://pastebin.com/Pshf7STz

客户端网络配置: http://pastebin.com/QY9252mB

【问题讨论】:

    标签: c# asp.net wcf security


    【解决方案1】:

    这是可能的并且是常用的 - 您必须根据主要权限要求保护您的呼叫。

    这是我自己的教程之一

    http://netpl.blogspot.com/2010/04/aspnet-forms-authentication-sharing-for.html

    不要让标题误导您,这不仅涉及 Silverlight,还涉及任何其他访问能够携带 cookie 的 WCF 服务的方式。

    【讨论】:

    • 有趣,但是说我是否会创建另一个网站并在我登录时从那里调用该方法。那不允许访问 WCF 方法吗?(也许我的问题不清楚从一开始,我就想控制哪些网站可以访问这个 WCF)
    • 我也尝试关注您的博文,但结果显示“请求主体权限失败”。看来我什至没有把票传给 WCF 服务,我真的不知道为什么,或者我应该如何解决这个问题。
    • 显然您发出的请求没有 cookie 或 cookie 错误。通常,您可以使用 Fiddler 或 Charles 等 http 调试器来调试此类问题。
    • 它似乎在发送 cookie,但它是加密的(正如我在创建票证时所打算的那样)这可能是个问题吗?我应该在哪里解密票?在 WCF 构造函数中? (对不起所有这些问题,但我只是想学习这个)
    • 您无需手动解密 cookie。正是 FormsAuthenticationModule 自动执行此操作并相应地设置 HttpContext.Current.User。
    猜你喜欢
    • 2021-10-27
    • 2013-05-13
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多