2015-02-06 59 views
2

我正在創建ASP.NET MVC 4 Internet應用程序。在該應用程序 我創建了登錄頁面,任何用戶都可以登錄,然後我試圖根據用戶的角色將用戶重定向到不同的頁面。基於ASP.NET MVC 4中的用戶角色重定向到不同的頁面4 Internet應用程序登錄

ASP.NET身份是這裏的會員制度。

在我AspNetRoles表我有兩個作用:

Id| Name 

1 | HEI_Admin 

2 | HEI_User 

這是我的登錄控制方法:

[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      var user = await UserManager.FindAsync(model.UserName, model.Password); 

      if (user != null) 
      { 
       if (user.ConfirmedEmail == true) 
       { 

        await SignInAsync(user, model.RememberMe); 

        if (String.IsNullOrEmpty(returnUrl)) 
        { 
         if (UserManager.IsInRole(user.Id, "HEC_Admin")) 
         { 
          return RedirectToAction("Index", "HEC"); 
         } 
         //role Admin go to Admin page 
         if (UserManager.IsInRole(user.Id, "HEI_User")) 
         { 
          return RedirectToAction("Index", "HEI"); 
         } 
        } 

        else 
        { 
         return RedirectToLocal(returnUrl); 
        } 


       } 
       else 
       { 
        ModelState.AddModelError("", "Confirm Email Address."); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "Invalid username or password."); 
      } 
     } 
     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

但是當我嘗試用正確的憑據我收到以下錯誤日誌:

建立到SQL Server的連接時發生網絡相關或實例特定的錯誤。服務器未找到或無法訪問。驗證實例名稱是否正確,並將SQL Server配置爲允許遠程連接。

所有連接都被雙重檢查,怎麼能實現這個問題。

+0

這似乎是sql連接錯誤,請確保sql server數據庫可以訪問。 – 2015-02-06 04:39:26

+0

是啊,它的罰款,沒有SQL連接錯誤,我可以使用管理工作室日誌 – kez 2015-02-06 04:42:55

+0

然後檢查連接字符串的身份上下文。 – 2015-02-06 04:44:05

回答

0

如果您使用任何集中式數據庫,請確保您的數據庫引擎配置爲接受遠程連接。

通過這個link我會解決同樣的問題與此鏈接

0
 if (ModelState.IsValid) 
     { 
      var user = await UserManager.FindAsync(model.UserName, model.Password); 
      if (user != null) 
      { 
       await SignInAsync(user, model.RememberMe); 
       if (UserManager.IsInRole(user.Id, "Admin")) 
       { 
        return RedirectToAction("Index", "Admin"); 
       } 
       else if (UserManager.IsInRole(user.Id, "Clerk")) 
       { 
        return RedirectToAction("Index","Employee"); 
       } 
       else if (UserManager.IsInRole(user.Id, "Customer")) 
       { 
        return RedirectToAction("Index", "Customer"); 
       } 
       //return RedirectToLocal(returnUrl); 
      } 
      else 
      { 
       ModelState.AddModelError("","Invalid username or password"); 
      } 
     } 
     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 

的幫助這是我用來重定向代碼。還看看是否將userID和RoleID插入到ASPNETUserRoles表中

相關問題