2013-05-20 42 views
1

我是新的asp.net mvc 4.你能告诉我怎么做,当我把username==admin && password==password123!它打开管理页面。因为我不知道哪里放代码? 我还想让另一个不是Admin的用户看不到其他用户数据。 谢谢!不同的用户在asp.net MVC 4

+0

你能提供一些额外的信息?你已经有登录页面吗?它看起来像你使用表单认证,但你有任何工作,一些或全部?让我们知道您的登录流程有多远以及您做出的任何决定(如使用自定义会员供应商)。谢谢 –

+0

我已经使用了标准登录。我已经使用了本教程:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet- mvc-4 –

+0

但是,在这里,每个注册和登录的用户都可以查看,编辑和删除其他用户的数据...所以我希望用户可以查看或修改他自己的数据并管理所有用户数据。请帮助我! ! –

回答

0

所以这是一个很大的问题,有许多方法来处理身份验证和授权在MVC 4

tutorial covers using Microsoft's default authentication and authorization providers与本地SQL数据库存储的凭据。

你的第一个教程创建了用户界面来获取登录信息,但并未针对后端源(如SQL数据库或活动目录或其他任何东西(xml,其他数据库类型,Web服务,openAuth)提供者等)。本教程将介绍一种连接数据的方法,但您需要确定是否需要存储凭据。

特别针对您允许管理员仅查看用户维护页面的问题,您可以使用Action Filters执行此操作。在教程中,我挂你会看到一个代码示例其中“AdministratorSecrets”行动有它上面的一个属性,它看起来像这样:

[Authorize(Roles = "Administrators")] 
public ActionResult AdministratorSecrets() 
{ 
    return View(); 
} 

这将阻止任何人,但管理员无法看到该AdministratorSecrets返回视图。您可以使用它来建立只有管理员才能看到的管理维护页面。

您可能想要完全控制登录过程和管理用户角色(以便您可以接受硬编码的管理员密码并返回该用户的管理员角色)。如果教程没有给你足够的控制权,那么你可以通过编写一个CustomMembershipProvider(来处理登录)和一个CustomRoleProvider(来处理确定每个用户有什么作用)来微调你的解决方案。

退房,如果你想要去的自定义路由本教程:http://www.brianlegg.com/post/2011/05/09/Implementing-your-own-RoleProvider-and-MembershipProvider-in-MVC-3.aspx

+0

非常感谢!你是那么好... :) –

+0

我有我的代码这个问题:私人诠释getIdByUser(列P) { \t使用(VAR的DbContext =新SurveyContext()){ 名单 调查=(从s in DbContext.Surveys where s.userName = userName select s.id).ToList(); (surveys.Count()> 0) { int id = 0; if(surveys.Count()> 0) int.TryParse(Surveys.First(),id); return id; } return 0; } } –

+0

嗨@radiolaDollani,请将它作为一个单独的问题发布,并包含错误消息和它发生的行。 –