使用MVC.NET和Windows身份验证以其他用户身份登录?

时间:2010-08-04 13:34:07

标签: asp.net-mvc authentication

如何使用MVC.NET实现这一目标?我在互联网上找到了关于如何在ASP.NET中实现它的资源,但我还没有找到一种方法在MVC.NET中做到这一点(尽管我是MVC.NET的新手)。我可以使用[授权]属性生成401响应,但我不知道在此之后该怎么做。

[编辑] 经过一番游戏,我想如果我能找到一种方法来强制应用程序重新验证自己并启动登录对话框,我可能会这样做。我认为如果我将Authorization属性设置为[Authorize(Users =“NooneAllowed”)]之类的东西,它应该打开登录对话框。有没有其他方法可以强制它重新进行身份验证,因为上面的hack几乎没用,因为它仍然会拒绝访问。

1 个答案:

答案 0 :(得分:0)

您必须使用以下代码

在注册时为每个用户设定角色
Roles.CreateRole(RoleName);
Roles.AddUserToRole(UserName, RoleName);

角色名称为"管理员"或"用户"或"员工"或"客户"或者你希望它能做什么。 你应该在注册时完成它。

然后,您可以定义这样的内容,以区分用户的使用情况。 如果您只需要Admin来访问以下方法,那么您必须将角色定义为" Admin"

    [HttpGet]
    [Authorize(Roles = "Admin")]
    public ActionResult ViewInventoryList()
    {
        List<Inventory> inventoryList = new List<Inventory>();
        inventoryList = connectDatabase.SelectInventory();
        return View("ViewInventory", inventoryList);
    }

如果您只需要用户访问以下方法,那么您必须将角色定义为&#34;用户&#34;

[HttpGet]
    [Authorize(Roles = "User")]
    public ActionResult ViewInventoryList()
    {
        List<Inventory> inventoryList = new List<Inventory>();
        inventoryList = connectDatabase.SelectInventory();
        return View("ViewInventory", inventoryList);
    }