我正在使用创建新的MVC应用程序时提供的默认成员资格代码。
//Account Controller:
if (ModelState.IsValid)
{
// Attempt to register the user
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
if (createStatus == MembershipCreateStatus.Success)
{
FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
return RedirectToAction("Index", "Student");
}
else
{
ModelState.AddModelError("", ErrorCodeToString(createStatus));
}
}如何防止用户在注册前直接转到学生控制。我有其他页面,我不应该让用户在注册前看到。如果用户尝试在注册前转到页面,我想将他们重定向到帐户控制器。
另外,我如何显示特定用户的特定页面(操作),在asp.net应用程序中,我在web.config文件中使用了以下代码,它在mvc中类似吗?
<location path="Admin/Test.aspx">
<system.web>
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
</system.web>
</location>谢谢
发布于 2011-12-01 05:52:55
对于特定于操作的授权,可以使用操作方法的[Authorize]属性。这将要求用户在能够在yoru控制器中执行该Action方法之前进行身份验证。
[Authorize]
public ActionResult YourActionMethod()
{
// your code here
}至于您的web.config授权规则,您可以在目录中为那些您希望仅保护给授权用户(或特定的组、用户等)的视图创建一个web.config。您只需将包含授权规则的web.config放入该目录。
发布于 2011-12-01 05:54:09
.NET MVC提供了一个非常好的选项--在加载操作之前使用自定义过滤器和属性来执行检查。
例如,您需要限制对某些Action的访问,因此您只需在该操作的顶部设置Authorize属性。如下所示:
[Authorize]
public ActionResult Index()
{
return View();
}如果你想限制对这个控制器中所有动作的访问,你应该把这个属性放在控制器类的顶部。如下所示:
[Authorize]
public HomeComtroller : Controller
{
public ActionResult Index()
{
return View();
}
}更多选项,例如,如果要仅为具有正确用户角色的用户提供访问权限:
[Authorize(Roles = "Admin")]
public ActionResult Index()
{
return View();
}https://stackoverflow.com/questions/8333373
复制相似问题