Я использую ASP.NET Login Control для аутентификации.
У меня есть несколько пользователей, и они могут успешно войти в систему. При аутентификации я перенаправляю на страницу helloworld.aspx. В методе Page_Load я сначала вызываю Membership.GetUser (). Это возвращает аутентифицированного пользователя правильно. Затем я вызываю простой веб-сервис WCF, который находится в том же веб-приложении. Первая строка моего вызова WebService - это тот же Membership.GetUser (). На этот раз он возвращает NULL.
Есть мысли?
Спасибо,
Джастин
Вот некоторые фрагменты кода
JustinPage.aspx
public partial class JustinPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
MembershipUser user = Membership.GetUser();
// user is a valid user
JustinService.JustinTestServiceClient justin = new CMS.WEB.JustinService.JustinTestServiceClient();
justin.DoWork();
}
}
JustinTestService.svc.cs
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class JustinTestService
{
[OperationContract]
public void DoWork()
{
MembershipUser user = Membership.GetUser();
// user is NULL ??? Why?
return;
}
}
Как упоминалось ранее, исходный код службы находится в том же веб-приложении, что и Justin.aspx, как вы можете видеть по конечной точке (обратите внимание, что мое приложение зафиксировано на порту 19003) ...
адрес конечной точки = "http://localhost:19003/Services/JustinTestService.svc"
binding = "basicHttpBinding" bindingConfiguration = "BasicHttpBinding_JustinTestService"
contract = "JustinService.JustinTestService" name = "BasicHttpBinding_JustinTestService" /
Также переплет выглядит так ...
Может быть, это как-то связано с ???