我编辑了我的问题,这是我用来实现身份验证的代码。
继承AuthorizeAttribute的类。
public class FBxAuth : AuthorizeAttribute
{
public FBxAuth()
: base()
{
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
bool isAuthenticated = false;
if (httpContext.User.Identity.IsAuthenticated)
{
// here I will check users exists in database.
// if yes , isAuthenticated=true;
}
return isAuthenticated;
}
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.HttpContext.Response.Redirect("/home/Register/?returningURL=" +
filterContext.HttpContext.Server.UrlEncode(filterContext.HttpContext.Request.Url.ToString()));
}
}
我的控制器
[FBxAuth]
public ActionResult Index()
{
teamDA = new TeamDataAccess();
var teams = teamDA.TeamsList();
return View(teams);
}
2.如何检查经过身份验证的用户是否有权在控制器中执行操作。
例如:删除。
www.abc.com/teams/5/
删除将执行删除
我可以隐藏UI的删除链接。
但是如果用户试图通过提供上面提到的url来删除,我该如何阻止他执行该操作?
答案 0 :(得分:0)
您必须执行与Index操作相同的操作,只需将[FBxAuth]
或公共[Authorize]
属性添加到您希望仅允许经过身份验证的用户访问的操作。< / p>