1
我有一個MVC 5 Web應用程序通過Windows身份驗證來驗證用戶。我的目標是根據他們的Windows Authenticatied用戶名實現自定義角色。我已經看到了解釋這一點的標準,但是他們在用戶角色的設計上構建了他們的應用程序,而不是Windows autnetication。基於Windows身份驗證憑據的MVC自定義角色
我的問題是,我如何添加基於Windows認證帳戶的自定義角色?
我有一個MVC 5 Web應用程序通過Windows身份驗證來驗證用戶。我的目標是根據他們的Windows Authenticatied用戶名實現自定義角色。我已經看到了解釋這一點的標準,但是他們在用戶角色的設計上構建了他們的應用程序,而不是Windows autnetication。基於Windows身份驗證憑據的MVC自定義角色
我的問題是,我如何添加基於Windows認證帳戶的自定義角色?
一種方法ID,以自定義過濾器添加到受限制的控制器,以驗證訪問:
[HasPermission(EnumSecuredFunctionality.ACCOUNTS)]
public class Account : Controller
{
}
內,您的自定義過濾器,您可以處理您的權限:
public class HasPermission : ActionFilterAttribute
{
public EnumSecuredFunctionality[] Actions { get; set; }
public HasPermission(params EnumSecuredFunctionality[] actions) //For example you can pass secured functionalities to restrict
{
Actions = actions;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
BaseController controller = (BaseController)filterContext.Controller;
UserAuthData userAuthData = (UserAuthData)controller.ViewBag.UserAuthData;
if (!controller.UserIsAuthenticated || !controller.ValidatePermission(userAuthData.ShopSeller.LoginName.ToString(), Actions[0]))
{
//REDIRECT
RouteValueDictionary redirectTargetDictionary = new RouteValueDictionary();
redirectTargetDictionary.Add("action", "ShowMessage");
redirectTargetDictionary.Add("controller", "Error");
redirectTargetDictionary.Add("message", "Role " + EnumToString.EnumRoleToString(userAuthData.ShopSeller.EnumRole) + " No permissions");
filterContext.Result = new RedirectToRouteResult(redirectTargetDictionary);
}
}
}
您是否嘗試過使用的DirectorySearcher對象來查詢用戶的組? – wertzui
@wertzui - 我還沒有嘗試使用DirectorySeearcher對象,但它聽起來像這不是我正在尋找。我想創建我自己的自定義角色/組,這些角色/組不會在其他地方找到。角色/組將位於我自己的數據庫中 – GRU119