2013-02-26 4 views
0

У меня есть проблема с функцией входа в систему, которая вызывается AJAX, что это код функции это WebService видноВызов местный C# вебсервис из Аякса 401 ошибка Несанкционированное

[WebMethod] 
    [System.Web.Script.Services.ScriptMethod] 
    public string CheckData(string login, string Pass) 
    { 
     global gb = new global(); 

     if (gb.CheckUserExist(login, Pass)) 
     { 
      System.Web.Security.FormsAuthentication.RedirectFromLoginPage(login, true); 
      HttpCookie cookie = new HttpCookie("userData",login); 
      cookie.Expires = DateTime.Now.AddMonths(2); 
      Mosab2aModel.Mosab2aEntities context = new Mosab2aModel.Mosab2aEntities(); 

      var User = context.Users.Where(x => x.UserName == login && x.Password == Pass) 
       .Select(x => new { x.UserName, x.Password, x.Admin, x.DisplayName, x.FBID }).First(); 

      cookie["UserName"] = User.UserName; 
      cookie["Password"] = User.Password; 
      cookie["isAdmin"] = User.Admin.ToString(); 
      cookie["Name"] = User.DisplayName; 
      cookie["FBID"] = User.FBID; 
      Context.Response.Cookies.Add(cookie); 
      //Context.Response.Redirect("/Default.aspx"); 
      return "1"; 
     } 
     else 
     { 
      return "0"; 
     } 
    } 

Я называю его АЯКС здесь

$.ajax({ 
        type: "POST", 
        url: 'LoginService.asmx/CheckData', 
        data: "{'login':'"+ login +"','Pass':'"+pass +"'}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
         success: function(msg) 
         { 

          if (msg.d == "1") 
          { 
           //document.location.href = '/Default.aspx'; 
          } 
          else 
          { 
           formWrapper.clearMessages(); 
           displayError('Username or password is incorrect'); 
          } 
         }, 
         error: function() 
         { 
          formWrapper.clearMessages(); 
          displayError('Error in contacting server , try again later.'); 
         } 
        }); 

у меня есть странная проблема, если пользователь не существует, то функция работает хорошо, и она возвращает значение 0 и diplays ошибки, но если функция нашла пользователь он получит 401 ошибку Несанкционированное.

Редактировать: после нескольких поиска проблема с этой линией!

System.Web.Security.FormsAuthentication.RedirectFromLoginPage(login, true); 

ответ

0

Проблема решена путем предоставления открытого доступа к веб-сервису, по умолчанию она была отказана при запуске модели безопасности через web.config Спасибо всем.

0

Просто на первый взгляд, может показаться, что идентифицированный пользователь не имеет соответствующих разрешений на страницу, указанную в ReturnUrl (или URL по умолчанию).

Смежные вопросы