2014-03-31 64 views
0

我已經創建了一個以前使用Windows Forms來驗證用戶的ASP.NET MVC 4應用程序,但是我將它移動到了內部服務器,並且想要基於它們的AD登錄並使用Windows身份驗證來驗證用戶。爲ASP.NET MVC Intranet應用程序實現Windows身份驗證的最佳方式是什麼?

在我的數據庫中,我有一個AD用戶名(域\用戶名)和一些基本權限的用戶列表。如果用戶試圖訪問應用程序,並且他們在數據庫中,我想授予訪問權限並分配其權限。如果他們不在數據庫中,我想授予訪問權限,但只分配給他們基本權限(只讀)。

實現身份驗證的最佳方式是什麼(無需重寫應用程序以使用簡單的成員身份)? (或者這真的是最好的方法!?)

任何幫助表示讚賞 - 每篇文章都指向web.config中的簡單身份驗證或命名用戶。

+0

基本上有兩個部分在這。首先是身份驗證,然後是授權。對於身份驗證,您可能想要查看此** [link](http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-windows-authentication-cs)**。然後進入授權部分,它將使用授權屬性,該授權屬性保持檢查哪個用戶有權訪問應用程序中的哪些操作方法。 – Nilesh

回答

1

我建議寫一個自定義屬性來處理這個問題:

MyAuthorizationAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     //Check database here 
    } 
} 

然後讓所有的控制器從有它的授權屬性的基本控制器繼承:

[MyAuthorization] 
public class BaseController : Controller 
{ 
} 

public class HomeController : BaseController 
{ 
     //Do Stuff 
} 
1

我推薦使用LDAP,它很容易啓動和運行,並且調用非常簡單。

相關問題