Настройка проверки подлинности с помощью форм WCF - PullRequest
5 голосов
/ 11 апреля 2009

В реализации для моего сервиса у меня есть:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

В моем файле .config у меня есть:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

и

  <system.web.extensions>
    <scripting>
      <webServices>
        <authenticationService enabled="true" requireSSL = "false"/>
      </webServices>
    </scripting>
  </system.web.extensions>

и

<authentication mode="Forms" />

В методе «Логин» для моего сервиса у меня есть:

FormsAuthentication.SetAuthCookie(request.UserName, false);

Однако, когда я проверяю:

HttpContext.Current.User.Identity.Name

Это пустая строка. Чего мне не хватает?

Ответы [ 3 ]

1 голос
/ 28 августа 2011

Попробуйте вместо этого использовать ServiceContext.User.Identity.

1 голос
/ 23 июня 2009

Аутентификация по формам используется, когда вы хотите, чтобы пользователь заполнил форму авторизации.

Для службы лучше использовать другой механизм аутентификации.

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

Я предполагаю, что вы проверяете Identity.Name при последующем запросе?

У вас есть элемент в вашем web.config?

Также убедитесь, что вы захватили куки-файл из ответа при входе в систему и повторно отправили его при последующих запросах?

...