ASP.NET MVC 3 соединение для защиты удаленного сервиса WCF - PullRequest
3 голосов
/ 16 февраля 2012

Я новичок во всех вещах в Интернете, поэтому вопрос может показаться тривиальным, но не для меня.Логика реализации:

ASP.NET MVC 3 -> Служба WCF -> База данных SQL

Аутентификация и авторизация в ASP.NET MVC3 используют настраиваемые поставщики членства и ролей, поскольку все данные журнала указаныхранятся в базе данных SQL.Требуется также реализовать авторизацию для службы WCF.При этом используются те же учетные данные, что и в ASP.NET MVC 3. Я реализовал тип имени пользователя для безопасности WCF, используя настраиваемый UsernameValidator.

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

Это работает впервые, когда пользователь входит на веб-сайт, потому что есть учетные данные.Однако после FormsAuthentication.SetAuthCookie на ASP.NET MVC 3 имя пользователя - все, что у меня есть.Поскольку подход 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?

1 Ответ

0 голосов
/ 17 февраля 2012

После прочтения предлагаемой ссылки было решено сохранить сервер ASP.NET MVC и службу WCF на одном компьютере и использовать для связи конечную точку net.pipe.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...