Membership.GetUser (). ProviderKey () возвращает ноль при использовании его в спокойном веб-сервисе (Api Controller), даже если я вошел в систему - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь узнать, вошел ли пользователь в свой веб-сайт asp.net через спокойный веб-сервис, используя Membership.GetUser (). ProviderKey () в контроллере API, но он возвращает значение NULL, даже если я вошел в систему. Вот мой ApiController: ` открытый класс EmployeeController: ApiController {

    // GET api/Employee/
    public string Get()
    {
        string error = "";
        Employee employee = new Employee();
        Guid userId = new Guid();
        userId = (Guid)Membership.GetUser().ProviderUserKey;
        employee = EmployeeAdapter.GetEmployees(out error).Where(c => c.aspnet_Users.UserId == userId).FirstOrDefault();
        string result = JsonConvert.SerializeObject(employee);
        return result;
    }
}`

Вот код моего веб-сайта (Default.aspx.cs), использующий веб-сервис:

private void CheckEmployee()
{
    // use Get method in Employee rest web service to know signed in employee identity
    string url = ApiUrl + "Employee/";
    var webrequest = (HttpWebRequest)System.Net.WebRequest.Create(url);
    webrequest.Method = "Get";
    var response = webrequest.GetResponse();
    using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
    {
        var result = reader.ReadToEnd();
        employee = JsonConvert.DeserializeObject<Employee>(result);
    }
    // use Get method in Employee rest web service to know signed in employee identity
}
...