5
votes

In the implementation for my service I have:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

In my .config file I have:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

and:

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

and:

<authentication mode="Forms" />

In the "Login" method for my service, I have:

FormsAuthentication.SetAuthCookie(request.UserName, false);

However, when I check:

HttpContext.Current.User.Identity.Name

It is an empty string. What am I missing?

3

3 Answers

1
votes

Forms authentication is used when you want the user to fill out a login form.

For a service it would be better to use a different authentication mechanism.

1
votes

Try using ServiceContext.User.Identity instead.

0
votes

I assume you are checking the Identity.Name on a subsequent request?

Do you have an element in your web.config?

Also are you making sure to capture the cookie from the Login response and resending it on the subsequent requests?