【问题标题】:ASP.NET MVC 3 connection to secure remote WCF serviceASP.NET MVC 3 连接到安全的远程 WCF 服务
【发布时间】:2012-02-16 12:13:04
【问题描述】:

我对所有网络事物都很陌生,所以这个问题可能看起来微不足道,但对我来说不是。实现逻辑是:

ASP.NET MVC 3 -> WCF 服务 -> SQL 数据库

ASP.NET MVC3 中的身份验证和授权使用自定义成员资格和角色提供程序,因为所有登录详细信息都存储在 SQL 数据库中。 也需要实现对 WCF 服务的授权。它使用与 ASP.NET MVC 3 相同的凭据。 我已经使用自定义 UsernameValidator 为 WCF 安全性实现了用户名类型。

<security mode="TransportWithMessageCredential">
  <transport clientCredentialType="None" />
  <message clientCredentialType="UserName" />
</security>

它第一次工作,当用户登录到网站时,因为有凭据。但是,在 ASP.NET MVC 3 上的 FormsAuthentication.SetAuthCookie 之后,用户名就是我所拥有的。 由于 MVC 方法由各种控制器组成,因此我必须在每个控制器上创建 WCF 客户端实例。但是没有凭据就没有意义。

       [Authorize]
        public class MyController : Controller
        {
            private WebServiceClient ServiceClient = new WebServiceClient();

            public ActionResult Index(string userName)
            {
              var model = ServiceClient.GetDataList();
              return View(model);
            }
        }

新实例不使用现有会话。它使用空白凭据创建一个新的。

  • 是否有一种安全的方法可以为每个会话创建 WCF 客户端实例?
  • 或者 WCF 接受 ASP.NET 身份验证的选项?
  • 将 asp.net 身份验证附加到 wcf 的最佳方法是什么 请求?

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-3 wcf authentication


【解决方案1】:

阅读the suggested link 后,决定将 ASP.NET MVC 服务器和 WCF 服务保留在一台机器上,并使用 net.pipe 端点进行通信。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多